2

如果我的 Y 值都相同,我很难让 matplotlib 绘制图表。

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

我已经能够通过将我的温度列表初始化为零 (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 不这样做?

4

1 回答 1

1

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

我在 Illustrator 和 Internet Explorer 中尝试了输出,效果很好。

于 2013-06-08T13:49:00.473 回答