Dre4m Shell
Server IP : 127.0.0.2  /  Your IP : 18.218.24.244
Web Server : Apache/2.4.18 (Ubuntu)
System :
User : www-data ( )
PHP Version : 7.0.33-0ubuntu0.16.04.16
Disable Function : disk_free_space,disk_total_space,diskfreespace,dl,exec,fpaththru,getmyuid,getmypid,highlight_file,ignore_user_abord,leak,listen,link,opcache_get_configuration,opcache_get_status,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,php_uname,phpinfo,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,pclose,popen,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,shell_exec,source,show_source,system,virtual
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python2.7/dist-packages/pychart/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /usr/lib/python2.7/dist-packages/pychart/range_plot.py
#
# Copyright (C) 2000-2005 by Yasushi Saito (yasushi.saito@gmail.com)
# 
# Jockey is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2, or (at your option) any
# later version.
#
# Jockey is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# for more details.
#
import line_style
import pychart_util
import chart_object
import fill_style
import legend
import range_plot_doc
from pychart_types import *
from types import *
from scaling import *


class T(chart_object.T):
    __doc__ = range_plot_doc.doc
    keys = {
        "data" : (AnyType, None, pychart_util.data_desc),
        "label": (StringType, "???", pychart_util.label_desc),
        "xcol" : (IntType, 0, pychart_util.xcol_desc),
        "min_col": (IntType, 1,
                   "The lower bound of the sweep is extracted from "
                   + "this column of data."),
        "max_col": (IntType, 2, 
                   "The upper bound of the sweep is extracted from "
                   + "this column of data."),
        "line_style": (line_style.T, line_style.default,
                      "The style of the boundary line."),
        "fill_style": (fill_style.T, fill_style.default,
                      ""),
        }
    
##AUTOMATICALLY GENERATED

##END AUTOMATICALLY GENERATED

    def check_integrity(self):
        chart_object.T.check_integrity(self)
    def get_data_range(self, which):
        if which == 'X':
            return pychart_util.get_data_range(self.data, self.xcol)
        else:
            ymax = (pychart_util.get_data_range(self.data, self.max_col))[1]
            ymin = (pychart_util.get_data_range(self.data, self.min_col))[0]
            return (ymin, ymax)
    def get_legend_entry(self):
        if self.label:
            return legend.Entry(line_style=self.line_style,
                                fill_style=self.fill_style,
                                label=self.label)
        return None

    def draw(self, ar, can):
        
        prevPair = None

        xmin=999999
        xmax=-999999
        ymin=999999
        ymax=-999999

        # Draw the boundary in a single stroke.
        can.gsave()
        can.newpath()
        for pair in self.data:
            x = pair[self.xcol]
            y = pychart_util.get_sample_val(pair, self.max_col)
            if y == None:
                continue
            
            xmin = min(xmin, ar.x_pos(x))
            xmax = max(xmax, ar.x_pos(x))
            ymin = min(ymin, ar.y_pos(y))
            ymax = max(ymax, ar.y_pos(y))
            if prevPair != None:
                can.lineto(xscale(ar.x_pos(x)), yscale(ar.y_pos(y)))
            else:
                can.moveto(xscale(ar.x_pos(x)), yscale(ar.y_pos(y)))
            prevPair = pair

        for i in range(len(self.data)-1, -1, -1):
            pair = self.data[i]
            x = pair[self.xcol]
            y = pychart_util.get_sample_val(pair, self.min_col)
            if None in (x, y):
                continue

            xmin = min(xmin, ar.x_pos(x))
            xmax = max(xmax, ar.x_pos(x))
            ymin = min(ymin, ar.y_pos(y))
            ymax = max(ymax, ar.y_pos(y))
            can.lineto(xscale(ar.x_pos(x)), yscale(ar.y_pos(y)))
        can.closepath()

        # create a clip region, and fill it.
        can.clip_sub()
        can.fill_with_pattern(self.fill_style, xmin, ymin, xmax, ymax)
        can.grestore()

        if self.line_style: 
            # draw the boundary.
            prevPair = None
            can.newpath()
            can.set_line_style(self.line_style)
            for pair in self.data:
                x = pair[self.xcol]
                y = pychart_util.get_sample_val(pair, self.min_col)
                if None in (x, y):
                    continue

                if prevPair != None:
                    can.lineto(xscale(ar.x_pos(x)), yscale(ar.y_pos(y)))
                else:
                    can.moveto(xscale(ar.x_pos(x)), yscale(ar.y_pos(y)))
                prevPair = pair
            can.stroke()

            prevPair = None
            can.newpath()
            can.set_line_style(self.line_style)
            for pair in self.data:
                x = pair[self.xcol]
                y = pychart_util.get_sample_val(pair, self.max_col)
                if y == None:
                    continue

                if prevPair != None:
                    can.lineto(xscale(ar.x_pos(x)), yscale(ar.y_pos(y)))
                else:
                    can.moveto(xscale(ar.x_pos(x)), yscale(ar.y_pos(y)))
                prevPair = pair
            can.stroke()



Anon7 - 2022
AnonSec Team