Python 使具有不同量级数据的条形图的外观更具吸引力

Python 使具有不同量级数据的条形图的外观更具吸引力,python,matplotlib,plot,bar-chart,Python,Matplotlib,Plot,Bar Chart,我通过调用matplotlib的bar方法生成了这个条形图,我的问题是,虽然大多数数据都具有相同的数量级,但有一些条形图太长,以至于无法对其余条形图进行比较。结果如下: 我想绘制其余的数据,就好像高条不在那里一样,高条只是为了达到绘图的顶部,并在上面显示它们的实际值 可能吗 为了完整起见,以下是我如何生成绘图的: def plot_states_meanvar(l, ax): xs, means, var = zip(*l) xs = np.array(xs) for

我通过调用matplotlib的
bar
方法生成了这个条形图,我的问题是,虽然大多数数据都具有相同的数量级,但有一些条形图太长,以至于无法对其余条形图进行比较。结果如下:

我想绘制其余的数据,就好像高条不在那里一样,高条只是为了达到绘图的顶部,并在上面显示它们的实际值

可能吗

为了完整起见,以下是我如何生成绘图的:

def plot_states_meanvar(l, ax):
    xs, means, var = zip(*l)
    xs = np.array(xs)
    for x in xs:
        ax.bar(x - 0.25/2, means[x], color = 'b', width = 0.25)
        ax.bar(x + 0.25/2, var[x], color = 'g', width = 0.25)
def plot_meanvar(meanvars, title=None):
    fig, axs = plt.subplots(ncols=3, nrows=2)
    for (modeldata, ax) in zip(meanvars, fig.axes):
        plot_states_meanvar(modeldata, ax)
    if title is not None:
        fig.suptitle(title)
    plt.tight_layout()

一个选项是使用以下工具将y轴更改为对数刻度:


ax.set_ylim()
?还是改成对数比例?我怎么改成对数比例?@BigBen谢谢,对数比例的把戏奏效了,ylim的把戏不太好,因为设定了限制后,情节颠倒了。如果你写评论作为回答,我会接受it@GerardoZinno
ylim
技巧会翻转ax,因为您只设置了最大值,但当它在参数中只看到一个值时,会认为它是最小值。请尝试
plt.ylim((0,ymax))
(参数是一个2元组)或
plt.ylim(top=ymax)
ax.set_yscale('log')