gpt4 book ai didi

python - 带有 matplotlib 的长垂直条形图

转载 作者:太空宇宙 更新时间:2023-11-04 09:35:45 26 4
gpt4 key购买 nike

我需要创建一个 Python 脚本,将(排序的)值列表绘制为垂直条形图。我想绘制所有值并将其保存为一个长的垂直图,这样 yticks 标签和条形图都清晰可见。也就是说,我想要一个“长”的垂直图。列表中的元素数量各不相同(例如,从 500 到 1000),因此使用 figsize 没有帮助,因为我不知道它应该有多长。

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()

# Example data
n = 500
y_pos = np.arange(n)
performance = 3 + 10 * np.random.rand(n)

ax.barh(y_pos, np.sort(performance), align='center', color='green', ecolor='black')
ax.set_yticks(y_pos)
ax.set_yticklabels([str(x) for x in y_pos])
ax.set_xlabel('X')

enter image description here

如何修改脚本,以便垂直拉伸(stretch)图形并使其可读?

最佳答案

根据数据值的数量更改figsize。此外,相应地管理 y 轴限制。

以下完美运行:

n = 500

fig, ax = plt.subplots(figsize=(5,n//5)) # Changing figsize depending upon data

# Example data
y_pos = np.arange(n)
performance = 3 + 10 * np.random.rand(n)

ax.barh(y_pos, np.sort(performance), align='center', color='green', ecolor='black')
ax.set_yticks(y_pos)
ax.set_yticklabels([str(x) for x in y_pos])
ax.set_xlabel('X')
ax.set_ylim(0, n) # Manage y-axis properly

下面给出了 n=200

的输出图片

plt

关于python - 带有 matplotlib 的长垂直条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53848541/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com