熊猫 - 在一个图中绘制两个数据框,但在顶部和底部绘制 xticks

时间:2021-04-02 14:19:44

标签: python matplotlib

我试图在一个图中绘制 2 个具有不同 x 标签的数据框。但现在第一个绘制 x 标签将被第二个绘制 x 标签覆盖。如何将第二个 x 标签移到顶部?

#!/usr/bin/env python3
import matplotlib.pyplot as plt
import pandas as pd

fig = plt.figure()
ax = fig.add_subplot(111)
df1 = pd.DataFrame()
idx = 0
for i in range(1,50):
    df1.loc[idx,'name'] = 'A' + str(i)
    df1.loc[idx,'value'] = 40*i
    idx += 1
    
df2 = pd.DataFrame()
idx = 0
for i in range(1,50):
    df2.loc[idx,'name'] = 'B' + str(i)
    df2.loc[idx,'value'] = i*i
    idx += 1

df1.plot(x='name',y='value',ax=ax)
df2.plot(x='name',y='value',ax=ax)


#plt.savefig(pngname)
plt.show()

enter image description here

1 个答案:

答案 0 :(得分:2)

使用 ax.twiny() 函数创建一个新轴:

ax2 = ax.twiny()
df1.plot(x='name',y='value',ax=ax)
df2.plot(x='name',y='value',ax=ax2, color = 'orange')

代替:

df1.plot(x='name',y='value',ax=ax)
df2.plot(x='name',y='value',ax=ax)

会给你:

enter image description here