我的代码中有什么想法可以避免部分图形/画布和日期超出PNG图像?是否可以将日期写在180度或垂直方向,以免使用如此多的格斗空间?
我的数据集是:
15/03/16 3000 300 200
12/04/16 3000 300 300
10/05/16 500 500 400
12/06/16 1000 600 500
14/07/16 1250 300 500
21/07/16 2000 300 50
15/08/16 3000 300 200
12/09/16 3000 300 300
10/10/16 500 500 400
12/11/16 1000 600 500
15/11/16 1250 300 500
21/12/16 1000 500 50
Python代码是:
import pandas
import matplotlib.pyplot as plt
df = pandas.read_csv('data.csv', delimiter=';',
index_col=0,
parse_dates=[0], dayfirst=True,
names=['date','a','b','c'])
df.plot()
df.plot(subplots=True, figsize=(6, 6))
plt.savefig('sampledata1.png')
png看起来像(缺少数据):
谢谢!
答案 0 :(得分:0)
数据存在,它只是绘制在图的边缘。您可以使用
全局更改y限制df.plot(ylim=(0,3500))
df.plot(subplots=True, figsize=(6, 6), ylim=(0,3500))
要为每个情节更改它们,我认为您需要单独绘制曲线。
要单独进行,我通常会做这样的事情(有很多方法可以做到):
fig, axes = plt.subplots(3,1)
axes[0].set_ylim([df.a.min()*0.9, df.a.max()*1.1])
axes[0].set_xticklabels([])
axes[1].set_ylim([df.b.min()*0.9, df.b.max()*1.1])
axes[1].set_xticklabels([])
axes[2].set_ylim([df.c.min()*0.9, df.c.max()*1.1])
axes[0].plot(df.a)
axes[1].plot(df.b)
axes[2].plot(df.c)
轴标签可以调整为可读等。 - 结帐matplotlib.org以获取大量示例。