I've got matplotlib installed and try to create a histogram plot from some data:
#!/usr/bin/python
l = []
with open("testdata") as f:
line = f.next()
f.next() # skip headers
nat = int(line.split()[0])
print nat
for line in f:
if line.strip():
if line.strip():
l.append(map(float,line.split()[1:]))
b = 0
a = 1
for b in range(53):
for a in range(b+1, 54):
import operator
import matplotlib.pyplot as plt
import numpy as np
vector1 = (l[b][0], l[b][1], l[b][2])
vector2 = (l[a][0], l[a][1], l[a][2])
x = vector1
y = vector2
vector3 = list(np.array(x) - np.array(y))
dotProduct = reduce( operator.add, map( operator.mul, vector3, vector3))
dp = dotProduct**.5
print dp
data = dp
num_bins = 200 # <- number of bins for the histogram
plt.hist(data, num_bins)
plt.show()
I'm getting an error from the last part of the code:
/usr/lib64/python2.6/site-packages/matplotlib/backends/backend_gtk.py:621: DeprecationWarning: Use the new widget gtk.Tooltip
self.tooltips = gtk.Tooltips()
Traceback (most recent call last):
File "vector_final", line 42, in <module>
plt.hist(data, num_bins)
File "/usr/lib64/python2.6/site-packages/matplotlib/pyplot.py", line 2008, in hist
ret = ax.hist(x, bins, range, normed, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, **kwargs)
File "/usr/lib64/python2.6/site-packages/matplotlib/axes.py", line 7098, in hist
w = [None]*len(x)
TypeError: len() of unsized object
But anyway, do you have any idea how to make 200 evenly spaced out bins, and have your program store the data in the appropriate bins?



importstatements at the top of your file, not within loops