将多个DataFrame绘制成一个单独的图

时间:2018-01-09 17:48:51

标签: python pandas matplotlib

我有两个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(),则会使用组合值绘制一行。 如何绘制两条线,一条用于第一个数据框,另一条用于第二条线?

2 个答案:

答案 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()放入循环中。