使用python将文本直方图转换为Image

时间:2013-09-24 09:26:37

标签: python

我有一个包含此类数据的文件:

0 5 9250 20728 1000 1200 34000

-0.1 -0 0.0 0.1 0.2 0.3

我需要阅读它并相应地创建直方图: 第一线酒吧高 二线垃圾箱。

from matplotlib import pyplot
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
import string




x = []
y = []
for line in open('data.csv'):
    values = line.strip(' ').split()
    print(line.strip(' ').split())
    x.append(float(values[0]))
    y.append(float(values[1]))


plt.bar(y, x)
plt.xlabel('slack')
plt.ylabel('traces')
plt.title(r'Histogram of Slack')

# Tweak spacing to prevent clipping of ylabel
plt.savefig('igor.png')

尽管得到了他,我得到了这个: histogram image

1 个答案:

答案 0 :(得分:1)

您正在读取第一行(x, y)值,然后是第二行。您应该只将第一行读作x值,将第二行读作y值,例如:

from matplotlib import pyplot
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
import string

with open('barplt.txt') as infile:
    x = [float(value) for value in infile.readline().strip().split()]
    y = [float(value) for value in infile.readline().strip().split()]

plt.bar(y, x, width=0.1)
plt.xlabel('slack')
plt.ylabel('traces')
plt.title(r'Histogram of Slack')

# Tweak spacing to prevent clipping of ylabel
plt.savefig('igor.png')

此外,您的示例数据中有7个条形高度,只有6个bin位置(2个位置为0)。除非我误解了你想要的东西。 请注意,我已明确将条宽设置为0.1。

Bar plot

相关问题