如何使用matplotlib为超过100个值创建一个可理解的条形图?

2024-09-26 17:58:17 发布

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

我有一个csv文件,大约有125行和两列-用户名和表数。我试着用这个数据栏创建一个水平的图表。我的目标是将条形图导出为pdf文件。问题是我不能在pdf文件中缩放我的图表,这样它实际上是可以理解的。在

这是我目前为止的代码(其中values是表/用户数量的数组,labels是具有相应用户名的数组):

positions = np.arange(len(values)) + 0.5
plt.figure(num=None, figsize=(8, 6))
plt.barh(positions, values, align='center', color=colors)
plt.yticks(positions, labels)
plt.tick_params(axis='y', labelsize=8)
plt.xlabel('Nombre tables')
plt.title('Utilisateur')
plt.grid(True)
plt.savefig('foo.pdf', papertype='a2')

下面是我用上面的代码得到的结果:

Result from matplotlib

我故意水平地创建图表,这样它就可以在我的pdf文件中分成多个页面,但我似乎无法使它工作。整个图像在一个页面中呈现,因此变得不可读。任何帮助都将不胜感激。在


可复制粘贴示例:

^{pr2}$

Tags: 文件csv数据代码labelspdf图表水平
1条回答
网友
1楼 · 发布于 2024-09-26 17:58:17

下面的示例使用Kirubaharan J的思想将bigget值设置为figsize。只有垂直网格。水平网格似乎没有任何优势。在

from matplotlib import pyplot as plt
import numpy as np

values = np.random.randint(0, 100, (125, ))
labels = [str(x) for x in values]
positions = np.arange(len(values)) + 0.5
plt.figure(num=None, figsize=(24, 17))
plt.barh(positions, values, align='center')
plt.yticks(positions, labels)
plt.tick_params(axis='y', labelsize=8)
plt.xlabel('Nombre tables')
plt.title('Utilisateur')
ax = plt.axes()
ax.xaxis.grid(True)
plt.savefig('foo.pdf', papertype='a2')

相关问题 更多 >

    热门问题