我有一个这样的数据文件:
1, 23%
2, 33%
3, 12%
我想使用python生成一个直方图来表示百分比。我遵循了这些命令:
from PIL import Image
img = Image.new('RGB', (width, height))
img.putdata(my_data)
img.show()
但是当我输入数据时出现错误:SystemError: new style getargs format but argument is not a tuple.
我是否必须更改数据文件?怎么样?
答案 0 :(得分:0)
你只是在画图吗? PIL是一个图像处理模块 - 如果你想要直方图和其他图表,你应该考虑matplotlib。
我找到了一个直方图here的例子。
答案 1 :(得分:0)
直方图通常在matplotlib中通过一组数据点然后将它们分配到bin中来制作。一个例子就是:
import matplotlib.pyplot as plt
data = [1, 2, 3, 3, 4, 4, 4, 5, 5, 6, 7]
plt.hist(data, 7)
plt.show()
您已经知道您的数据的百分比适合每个类别(尽管我可能会指出您的百分比不会增加到100 ......)。一种表示这种情况的方法是制作一个列表,其中每个数据值的表示次数等于其百分比,如下所示。
data = [1]*23 + [2]*33 + [3]*12
plt.hist(data, 3)
plt.show()
hist()的第二个参数是显示的二进制数,所以这可能是你希望它变得漂亮的数字。
此处可找到hist()的文档: http://matplotlib.org/api/pyplot_api.html