Esempio n. 1
0
    def __init__(self, 
                 axesOri="en",
                 figScale=None,
                 errScale=1,
                 stdev=None,
                 configFileName=None):
        """
        figScale: scale of data in axes
        errScale: relative scale of error ellipses
        stdev: StandardDeviation instance
        configFileName ... name of configuration file
        """

        super(FigureLayoutErrEll, self).__init__(axesOri=axesOri,
                                                 figScale=figScale,
                                                 configFileName=configFileName)

        self.errScale = errScale

        if stdev is None:
            from gizela.data.StandardDeviation import StandardDeviation
            self.stdev = StandardDeviation()
        else:
            self.stdev = stdev
Esempio n. 2
0
class FigureLayoutErrEll(FigureLayoutBase):
    """
    layout with error ellipses
    designed for GamaLocalData instance
    """

    def __init__(self, 
                 axesOri="en",
                 figScale=None,
                 errScale=1,
                 stdev=None,
                 configFileName=None):
        """
        figScale: scale of data in axes
        errScale: relative scale of error ellipses
        stdev: StandardDeviation instance
        configFileName ... name of configuration file
        """

        super(FigureLayoutErrEll, self).__init__(axesOri=axesOri,
                                                 figScale=figScale,
                                                 configFileName=configFileName)

        self.errScale = errScale

        if stdev is None:
            from gizela.data.StandardDeviation import StandardDeviation
            self.stdev = StandardDeviation()
        else:
            self.stdev = stdev

        # error ellipse scale circle
        #if "errorEllipseScaleCircle" in self.config and figScale is not None:
        #    from matplotlib.patches import Circle
        #    if self.config["errorEllipseScaleCircle"]["visible"] == "on":
        #        # plot scale bar
        #        radius_norm = self.config["errorEllipseScaleCircle"]["radius"]/100
        #        offset_norm = self.config["errorEllipseScaleCircle"]["offset"]/100
        #        radius_real = radius_norm * self.figWidth / figScale
        #        print "Radius norm:", radius_norm
        #        print "Radius real:", radius_real
        #            #: radius in milimeters in real
        #        exp = round(math.log10(radius_real))
        #        print "exp", exp
        #        radius = round(radius_real, int(-exp))
        #        print "Radius:", radius
        #        radius_norm = radius * figScale / self.figWidth
        #        xy = [1 - offset_norm, 1 - offset_norm]
        #        facecolor="white"
        #        trnax = self.gca().transAxes
        #        for i in xrange(4):
        #            self.gca().add_patch(Circle(xy=xy,
        #                                        radius=radius_norm,
        #                                        transform=trnax,
        #                                        facecolor=facecolor))


    def update_(self, gamaLocalData):
        "update figure settings according to data"
        self.set_axes(gamaLocalData.get_axes_ori())
        self.stdev = gamaLocalData.stdev
        if self.figScale is not None:
            self.set_scale_ratio(self.figScale)


    def set_axes_ori(self, axesOri):
        self.set_axes(axesOri)

    
    def plot_point_error_ellipse(self, point):
        #import sys
        #print >>sys.stderr, "errScale: %s" % self.errScale
        #print >>sys.stderr, "stdev: %s" % self.stdev
        #print >>sys.stderr, "conf_scale_2d(): %s" %\
        #                        self.stdev.get_conf_scale_2d()
        PlotPoint.plot_point_error_ellipse(self, point,
                       self.errScale*self.stdev.get_conf_scale_2d(),
                       style="errorEllipseStyle")

    def plot_point_x_stdev(self, point, x):
        PlotPoint.plot_y_stdev(self, x, point.x, 
               self.errScale*self.stdev.get_conf_scale_1d()*point.stdevx,
               style="stdevStyle")

    def plot_point_y_stdev(self, point, x):
        PlotPoint.plot_y_stdev(self, x, point.y,
               self.errScale*self.stdev.get_conf_scale_1d()*point.stdevy,
               style="stdevStyle")

    def plot_point_z_stdev(self, point, x):
        PlotPoint.plot_y_stdev(self, x, point.z,
               self.errScale*self.stdev.get_conf_scale_1d()*point.stdevz,
               style="stdevStyle")
    
    def plot_point_error_z(self, point):
        PlotPoint.plot_y_stdev(self, point.x, point.y,
               self.errScale*self.stdev.get_conf_scale_1d()*point.stdevz,
               style="errorZStyle")