matplotlib限制大量y图的y标记数

时间:2018-10-10 09:44:15

标签: python matplotlib

我有一个包含几个正弦曲线的列表。正弦曲线基本上是y值的列表。因此,循环遍历每个正弦曲线并绘制其y值。每个正弦曲线都有-1到1的y值,但都共享相同的x值(时间)

正弦曲线可以在10000毫秒内包含10000多个图。值介于-1和1之间。

我希望绘制所有可见的图,但是我只希望在左侧显示三个y标记/标签:-1、0和1。

ylim / set_yticks似乎不起作用并产生奇怪的结果:

def plot(self, listOfCols):
    self.figure.clear()
    x=listOfCols[0][1:]
    xi=[i for i in range(0, len(x))]
    plt.xlabel(listOfCols[0][0])
    for i, val in enumerate(listOfCols[1:]):
        y=val[1:]
        ay=self.figure.add_subplot(111)
        plt.ylim(-1,1)
        ay.plot(xi, y, '-')
    self.canvas.draw()

Kind of random values are picked from matplotlib

没有ylim和其他东西:

To many y marks

使用plt.yticks([-1,0,1])

我得到这个结果:

    def plot(self, listOfCols):
    self.figure.clear()
    x=listOfCols[0][1:]
    xi=[i for i in range(0, len(x))]
    plt.xlabel(listOfCols[0][0])
    for i, val in enumerate(listOfCols[1:]):
        y=val[1:]
        ay=self.figure.add_subplot(111)
        plt.yticks([-1,0,1])
        ay.plot(xi, y, '-')
    self.canvas.draw()

enter image description here

以某种方式matplotlib在y轴上创建了从1到-1的两个范围。但是我不知道为什么。输入的数据绝对正确。

Multiple ranges

1 个答案:

答案 0 :(得分:0)

您可以尝试添加:

plt.yticks([-1,0,1])