def draw(self, wsviewport=None): if self.xvalues is not None and self.widths is not None: maxidx = np.argmax(self.xvalues) rangex = (self.xvalues.min(), self.xvalues[maxidx] + self.widths[maxidx]) else: rangex = (0.0, 100.0) if self.yvalues is not None: rangey = gr.adjustrange(0.0, self.yvalues.max()) else: rangey = (0.0, 8.0) if wsviewport is None: gr.setwsviewport(0, self.mwidth, 0, self.mheight) else: gr.setwsviewport(*wsviewport) gr.setwswindow(0, self.sizex, 0, self.sizey) gr.setviewport(0.075 * self.sizex, 0.95 * self.sizex, 0.075 * self.sizey, 0.95 * self.sizey) gr.setwindow(rangex[0], rangex[1], rangey[0], rangey[1]) gr.setcharheight(0.012) gr.setfillintstyle(1) gr.setfillcolorind(0) gr.fillrect(rangex[0], rangex[1], rangey[0], rangey[1]) if self.xvalues is not None and self.yvalues is not None \ and self.widths is not None: gr.setfillintstyle(1) gr.setfillcolorind(2) for i in range(self.xvalues.size): gr.fillrect(self.xvalues[i], self.xvalues[i] + self.widths[i] * 0.8, 0.0, self.yvalues[i]) else: gr.text(0.45 * self.sizex, 0.5 * self.sizey, "no data") gr.setlinecolorind(1) xtick = floor(0.02 * (rangex[1] - rangey[0]) * 100.0) / 100.0 ytick = floor(0.04 * (rangey[1] - rangey[0]) * 50.0) / 50.0 gr.axes(xtick, ytick, rangex[0], rangey[0], 10, 5, 0.0075) gr.axes(xtick, ytick, rangex[1], rangey[1], -10, -5, -0.0075) if self.title is not None: gr.text(0.8 * self.sizex, 0.9 * self.sizey, self.title)
def draw(self, wsviewport=None): if self.xvalues is not None: rangex = (self.xvalues.min(), self.xvalues.max()) else: rangex = (0, 10) if self.yvalues is not None: rangey = gr.adjustrange(self.yvalues.min(), self.yvalues.max()) else: rangey = (0, 4) if wsviewport is None: gr.setwsviewport(0, self.mwidth, 0, self.mheight) else: gr.setwsviewport(*wsviewport) gr.setwswindow(0, self.sizex, 0, self.sizey) gr.setviewport(0.075 * self.sizex, 0.95 * self.sizex, 0.075 * self.sizey, 0.95 * self.sizey) gr.setwindow(rangex[0], rangex[1], rangey[0], rangey[1]) gr.setcharheight(0.012) gr.setfillintstyle(1) gr.setfillcolorind(0) gr.fillrect(rangex[0], rangex[1], rangey[0], rangey[1]) if self.xvalues is not None and self.yvalues is not None: gr.setlinecolorind(2) gr.polyline(self.xvalues, self.yvalues) else: gr.text(0.4 * self.sizex, 0.5 * self.sizey, "no elements selected") gr.setlinecolorind(1) gr.axes(0.2, 0.2, rangex[0], rangey[0], 5, 5, 0.0075) gr.axes(0.2, 0.2, rangex[1], rangey[1], -5, -5, -0.0075) if self.title is not None: gr.text(0.8 * self.sizex, 0.9 * self.sizey, self.title)