如何使用python和给定数据生成图像?

时间:2016-04-14 12:49:27

标签: python image

我有一个这样的数据文件:

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.我是否必须更改数据文件?怎么样?

2 个答案:

答案 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