Python 使用Panda和多个y轴打印

Python 使用Panda和多个y轴打印,python,pandas,matplotlib,Python,Pandas,Matplotlib,我有一个用熊猫绘制的条形图,想插入多个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,

我有一个用熊猫绘制的条形图,想插入多个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()

由于三个参数的比例完全不同,因此使用三个不同的子地块可能是有意义的

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()

对于跨越几个数量级的数据,为什么不使用对数刻度?ax0.set_yscale'log'Thank@Charles Morris,但是如果我使用这个多轴,轴总是取决于不同的组,因此A1可以有另一个y轴而不是B2,而不是整个块,就像一个有另一个y轴而不是两个。谢谢,也许这是最好的。为了更好的概述,我想知道是否可以把它放在一个块中。你可以把它放在一个称为子块的块中,但问题是把轴缩放放在哪里。