Python 使具有不同量级数据的条形图的外观更具吸引力
我通过调用matplotlib的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
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@GerardoZinnoylim
技巧会翻转ax,因为您只设置了最大值,但当它在参数中只看到一个值时,会认为它是最小值。请尝试plt.ylim((0,ymax))
(参数是一个2元组)或plt.ylim(top=ymax)
ax.set_yscale('log')