如果我的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没有这样做?
答案 0 :(得分:0)
事实证明(在我检查了SVG文件的内容之后)代码或matplotlib没有任何问题,但事实证明 Google Chrome 拒绝显示直线SVG。
我在Illustrator和Internet Explorer中尝试了输出,它运行正常。