Example #1
0
    def add_axes(self):
        x_axis = Line(self.tick_width*LEFT/2, self.width*RIGHT)
        y_axis = Line(MED_LARGE_BUFF*DOWN, self.height*UP)
        ticks = VGroup()
        heights = np.linspace(0, self.height, self.n_ticks+1)
        values = np.linspace(0, self.max_value, self.n_ticks+1)
        for y, value in zip(heights, values):
            tick = Line(LEFT, RIGHT)
            tick.scale_to_fit_width(self.tick_width)
            tick.move_to(y*UP)
            ticks.add(tick)
        y_axis.add(ticks)

        self.add(x_axis, y_axis)
        self.x_axis, self.y_axis = x_axis, y_axis

        if self.label_y_axis:
            labels = VGroup()
            for tick, value in zip(ticks, values):
                label = TexMobject(str(np.round(value, 2)))
                label.scale_to_fit_height(self.y_axis_label_height)
                label.next_to(tick, LEFT, SMALL_BUFF)
                labels.add(label)
            self.y_axis_labels = labels
            self.add(labels)
Example #2
0
 def get_tick(self, x, size = None):
     if size is None: size = self.tick_size
     result = Line(size*DOWN, size*UP)
     result.rotate(self.main_line.get_angle())
     result.move_to(self.number_to_point(x))
     return result