为直方图设置相等的仓位宽度

2024-05-17 18:45:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要4个不同生物的直方图,数据非常不同,但轴的限制和(更重要的是)每个图中所有箱子的宽度应该相等。 我有这个密码

fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(16, 10))
colors = ['tab:red', 'tab:blue', 'tab:green', 'tab:pink']

for i, (ax, Organism) in enumerate(zip(axes.flatten(), data.Organism.unique())):
    x = data.loc[data.Organism == Organism, 'Protein Length']
    ax.hist(x, density=True, label=str(Organism), color=colors[i], alpha=0.5, rwidth=0.5, bins = 30)
    ax.set_xscale("log")
    ax.set_xlim([min(data["Protein Length"]), max(data["Protein Length"])])

我还应该指定什么才能使每个位置的箱子宽度相等

提前谢谢


Tags: 数据密码data宽度生物ax直方图tab
2条回答

您可以自行设置所有存储箱,而不是设置存储箱的数量:

ax.hist(x, density=True, label=str(Organism), color=colors[i],
           alpha=0.5, rwidth=0.5, bins=np.linspace(first_bin, last_bin, 30))

其中start_binlast_bin是直方图的起点和终点

首先,你可以让你的生活更轻松,使用seaborn。它建立在matplotlib之上。处理matplotlib可能会有点痛苦——需要大量代码,而且它不是无状态的

如果你想要更精彩的情节,再加上一点编码,就去plotly

您始终可以计算直方图separately

相关问题 更多 >