【发布时间】:2017-07-01 08:56:22
【问题描述】:
我正在尝试使用 pandas 和 matplotlib.pyplot 将数据框绘制到几个子图上。但我想让两列使用不同的 y 轴,并在所有子图之间共享。
目前我的代码是:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'Area':['A', 'A', 'A', 'B', 'B', 'C','C','C','D','D','D','D'],
'Rank':[1,2,3,1,2,1,2,3,1,2,3,4],
'Count':[156,65,152,70,114,110,195,92,44,179,129,76],
'Value':[630,426,312,191,374,109,194,708,236,806,168,812]}
)
df = df.set_index(['Area', 'Rank'])
fig = plt.figure(figsize=(6,4))
for i, l in enumerate(['A','B','C','D']):
if i == 0:
sub1 = fig.add_subplot(141+i)
else:
sub1 = fig.add_subplot(141+i, sharey=sub1)
df.loc[l].plot(kind='bar', ax=sub1)
这会产生:
这可以并排绘制 4 个图表,这是我想要的,但两列使用相同的 y 轴我想让“计数”列在左侧使用公共 y 轴,“ Value' 列在右侧使用一个通用的辅助 y 轴。
有人可以建议一种方法吗?到目前为止,我的尝试导致每个图表都有自己独立的 y 轴。
【问题讨论】:
标签: python pandas matplotlib