我很难找到一个与我需要实现的示例类似的示例。我需要使用以下格式为CSV的每个记录生成子图:
Batch process name, Mon, Tue, Wed, Thu,Fri,Sat,Sun
Batch process 1 ,10,5,14,2,4,5,2
Batch process 2 ,13,4,11,2,4,5,7
Batch process 3 ,8,5,14,2,4,8,4
Batch process 4 ,0,5,13,2,4,9,9
Batch process 5 ,10,5,14,2,4,10,7
Batch process 6 ,0,5,14,2,4,12,0
...
Batch process ... ,10,5,14,2,14,9,10
...
对于每个过程(CSV中的记录),我假装代表一个子图,其中记录的每一列均表示Y值(每个子图的Y轴都有7个值)。 X值应为周一,周二,周三,周四,周五,周六,周日。
每个子图之间的分隔是为了确保每个图都有自己的比例尺。
关于如何实施的任何建议?
预先感谢
答案 0 :(得分:0)
这是我在上面的示例中使用的代码-完全硬编码。
import pandas as pd
import numpy as np
import matplotlib
matplotlib.use('agg')
import matplotlib.pyplot as plt
# Generate random data
colnames=['TIME', 'X', 'Y', 'Z']
df = pd.DataFrame(np.random.randn(96,8),
columns=['Batch process 1', 'Batch Process 2', 'Batch Process 3', 'Bath Process 4', 'Batch Proces 5', 'Batch Process 6', '...', 'Batch Process 100'])
# Plotting
df.plot(kind='line', subplots=True, grid=True, title="Batch Process duration (minutes)",
layout=(4, 3), sharex=True, sharey=False, legend=False,
style=['r', 'r', 'r', 'g', 'g', 'g', 'b', 'r'],
xticks=np.arange(0, len(df), 16))
[ax.legend(loc=1) for ax in plt.gcf().axes]
plt.savefig('plot.png')