首页 > 解决方案 > pandas - 在一个图中绘制两个数据框,但在顶部和底部有 xticks

问题描述

我正在尝试在一个图中绘制 2 个具有不同 x 标签的数据框。但现在第一个 draw x 标签将被第二个 draw 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()

在此处输入图像描述

标签: pythonmatplotlib

解决方案


使用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)

会给你:

在此处输入图像描述


推荐阅读