Cómo hacer un histogtwig a partir de una lista de datos.

Bueno, creo que matplotlib se descargó pero con mi nuevo script me sale este error:

/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  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 

Y mi código es: #! / 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() 

Pero el código que me está dando el error es la nueva adición que agregué, que es la última parte, que se reproduce a continuación:

  data = dp num_bins = 200 # <- number of bins for the histogram plt.hist(data, num_bins) plt.show() 

¿Tiene alguna idea de cómo hacer 200 contenedores espaciados uniformemente, y que su progtwig almacene los datos en los contenedores apropiados?

Puede, por ejemplo, usar el rango de NumPy para un tamaño de contenedor fijo (o el objeto de rango estándar de Python), y el linspace de NumPy para contenedores uniformemente espaciados. Aquí hay 2 ejemplos simples de mi galería matplotlib

Tamaño de contenedor fijo

 import numpy as np import random from matplotlib import pyplot as plt data = np.random.normal(0, 20, 1000) # fixed bin size bins = np.arange(-100, 100, 5) # fixed bin size plt.xlim([min(data)-5, max(data)+5]) plt.hist(data, bins=bins, alpha=0.5) plt.title('Random Gaussian data (fixed bin size)') plt.xlabel('variable X (bin size = 5)') plt.ylabel('count') plt.show() 

introduzca la descripción de la imagen aquí

Número fijo de contenedores

 import numpy as np import math from matplotlib import pyplot as plt data = np.random.normal(0, 20, 1000) bins = np.linspace(math.ceil(min(data)), math.floor(max(data)), 20) # fixed number of bins plt.xlim([min(data)-5, max(data)+5]) plt.hist(data, bins=bins, alpha=0.5) plt.title('Random Gaussian data (fixed number of bins)') plt.xlabel('variable X (20 evenly spaced bins)') plt.ylabel('count') plt.show() 

introduzca la descripción de la imagen aquí