matplotlib不会绘制相同x值的行

时间:2013-06-08 12:34:20

标签: python matplotlib

如果我的Y值完全相同,我在使用matplotlib绘制图表时遇到了一些麻烦。

我正在绘制温度与时间的关系图,我发现如果我的温度都相同,我就不会绘制线条,只要温度变化添加到绘图中,就会绘制线条。 / p>

我已经能够通过初始化我的温度列表来强制它绘制线,其值为零(0),但只有在任何时候温度不为零时才有效。

有没有办法可以让它正确绘制我的图形而不用假值启动?

字段:

    temperature = []
    time = []
    minY = 0
    maxY = 0

设置(传感器轮询时):

    temp = float(params['temp'][0])
    time = datetime.now()
    self.temperature.append(temp)
    self.time.append(time)

简介:

    plt.figure()
    plt.xlabel("Time")
    plt.ylabel("Temperature (Celcius)")
    plt.title("Temperature in ...")
    plt.ylim(self.minY,self.maxY)
    plt.plot(self.time,self.temperature, "c")
    plt.gcf().autofmt_xdate()
    plt.savefig("temp.svg")

编辑:如果我在调用绘图时将绘图类型设置为“o”(圆圈),我可以看到同一行上的圆圈,如果我切换回默认的线型,我什么都看不见。 /强>

Edit2:将输出格式切换为png会正确生成线条。为什么SVG没有这样做?

1 个答案:

答案 0 :(得分:0)

事实证明(在我检查了SVG文件的内容之后)代码或matplotlib没有任何问题,但事实证明 Google Chrome 拒绝显示直线SVG。

我在Illustrator和Internet Explorer中尝试了输出,它运行正常。