我有两个dataFrame,我想将其绘制成单个图形。这是一个基本代码:
#!/usr/bin/python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
scenarios = ['scen-1', 'scen-2']
for index, item in enumerate(scenarios):
df = pd.DataFrame({'A' : np.random.randn(4)})
print df
df.plot()
plt.ylabel('y-label')
plt.xlabel('x-label')
plt.title('Title')
plt.show()
但是,这只会绘制最后一个dataFrame。如果我使用pd.concat()
,则会使用组合值绘制一行。
如何绘制两条线,一条用于第一个数据框,另一条用于第二条线?
答案 0 :(得分:2)
你需要把你的情节放在for循环中。
如果你想在一个地块上使用它们,那么你需要使用情节ax
kwarg将它们绘制在同一个轴上。在这里,我使用subplots
创建了一个新轴,但这可能是一个已填充的轴,
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
scenarios = ['scen-1', 'scen-2']
fig, ax = plt.subplots()
for index, item in enumerate(scenarios):
df = pd.DataFrame({'A' : np.random.randn(4)})
print df
df.plot(ax=ax)
plt.ylabel('y-label')
plt.xlabel('x-label')
plt.title('Title')
plt.show()
答案 1 :(得分:0)
绘图函数只调用一次,正如您所说,它的最后一个值为df
。将df.plot()
放入循环中。