用熊猫和多个y轴绘图

时间:2017-02-09 14:43:16

标签: python pandas matplotlib

我有一个用Pandas绘制的条形图,想要插入多个y轴。绘制图表,即从下面的代码生成(参见图片链接),可以看出,前两个块对于缩放而言太小。如何插入多个y轴,每个块都显示良好? 使用axis.twinx()只将列值分配给单个y轴,而不是像我想要的那样分配整个块。

from matplotlib import pyplot as plt
import pandas as pd

g = ['A1', 'B2', 'C3']
params = ['one', 'two', 'three']
data = [[1, 3e-5, 400], [2, 5e-5, 300], [1.5, 4e-5, 350]]

data_dict = dict(zip(g,data))
df=pd.DataFrame(data=data_dict,index=params,columns=g)
fig0, ax0 = plt.subplots()
ax1 = ax0.twinx()

df.plot(kind='bar', ax=ax0)

fig0.show()

bar Chart plot with only one y-axis

1 个答案:

答案 0 :(得分:1)

由于三个参数的尺度完全不同,因此使用三个不同的子图可能是有意义的。

from matplotlib import pyplot as plt
import pandas as pd

g = ['A1', 'B2', 'C3']
params = ['one', 'two', 'three']
data = [[1, 3e-5, 400], [2, 5e-5, 300], [1.5, 4e-5, 350]]

data_dict = dict(zip(g,data))
df=pd.DataFrame(data=data_dict,index=params,columns=g)

fig0, ax = plt.subplots(ncols=3, figsize=(10,4))

for i, p in enumerate(params):
    df.loc[[p,p], :].plot(kind='bar', ax=ax[i], )
    ax[i].set_xlim([-.5,.5])

plt.tight_layout()
plt.show()

enter image description here

相关问题