gpt4 book ai didi

python - 在 Python 中创建条形图

转载 作者:太空狗 更新时间:2023-10-30 03:06:36 26 4
gpt4 key购买 nike

我尝试在 python 中创建条形图时遇到了一些问题。我的图表代码如下所示:

import matplotlib
matplotlib.use('Agg')
from pylab import *
import calendar

def webshow(img):
savefig(img,dpi=500)
print 'Content-Type: text/html\n'
print '<img width="800" height="400" src="'+img+'" />'

genres = []
n = 0
for c in sorted_list:
genres.append(sorted_list[n][0])
n += 1

grosses = []
a = 0
for c in sorted_list:
grosses.append(sorted_list[a][1])
a += 1

clf()
bar(arange(len(grosses)),grosses)
xticks( arange(len(genres)),genres, rotation=80)
webshow("barchart.png")

我的图表是这样的:

a busy cat
(来源:tumblr.com)

基本上我的主要问题是这些值是用科学记数法表示的小数。如果可能的话,我想以百万为单位展示它们。另外,我不确定如何制作它,这样类型就不会在底部被切断。感谢您的帮助!

最佳答案

首先,我会使用一个 figure 对象来处理:这样可以更轻松地根据您的喜好构建绘图。要构建图表,应执行以下操作:

fig = plt.figure()
fig.subplots_adjust(bottom=0.2) # Remark 1
ax = fig.add_subplot(111)
ax.bar(arange(len(grosses)), grosses)
ax.ticklabel_format(style='plain') # Remark 2
ax.set_xticks(arange(len(genres)))
ax.set_xticklabels(genres, rotation=80)
savefig('barchart.png', dpi=500)

连同以下备注:

  1. 这会调整图像的大小,在这种情况下,它会放大底部以适合您的标签。在大多数情况下,您大致知道要输入的数据,所以这就足够了。如果您使用的是 matplotlib 1.1 或更高版本,则可以使用 tight_layout自动为您执行此操作的功能。另一种方法是根据所有轴标签的边界框自行计算所需的大小,如图所示 here ,但是您需要一个渲染器才能确定所有标签的大小。
  2. 通过指定标签格式(使用 sciplain),您可以更改值的呈现。使用 plain 时,它只会按原样呈现值。查看docs有关此功能的更多信息。请注意,您还可以使用 set_yticklabels函数的 text 参数来进一步控制格式(当然该函数也可用于 x 轴。

关于python - 在 Python 中创建条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7871338/

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