我有一个用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()
答案 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()