|
From: surfcast23 <sur...@gm...> - 2012-07-27 03:13:08
|
Hi I have a code to plot a histogram and I am trying to add a best fit line following this example http://matplotlib.sourceforge.net/examples/pylab_examples/histogram_demo.html but run into this error Traceback (most recent call last): File "/home/Astro/count_Histogram.py", line 54, in <module> l = plt.plot(bins, y, 'r--', linewidth=1) File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 2467, in plot ret = ax.plot(*args, **kwargs) File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 3893, in plot for line in self._get_lines(*args, **kwargs): File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 322, in _grab_next_args for seg in self._plot_args(remaining, kwargs): File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 300, in _plot_args x, y = self._xy_from_xy(x, y) File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 240, in _xy_from_xy raise ValueError("x and y must have same first dimension") ValueError: x and y must have same first dimension My Code import matplotlib.pyplot as plt import math import numpy as np import mpl_toolkits.mplot3d.axes3d import matplotlib.mlab as mlab counts = [] F = '/home/Astro/outfiles/outmag21_5dr_38_68.txt' f = open(F) for line in f: if line != ' ': columns = line.split() count = columns[3] count = int(count) counts.append(count) C = np.array(counts, dtype=float) avg = sum(C)/len(C) diff = C-avg sigma = np.sqrt((1./len(C))*(diff**2)) bins = 20 plt.hist(C, bins, range=None, normed=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log = False, color=None, label=None) plt.title("") plt.text(25,20,'M < -21.5' '\n' 'N Halos 3877' '\n' 'Length Cell 38.68Mpc' '\n' 'N Cells 269' '\n' 'Avg Halo per Cell 14.35 ') plt.xlabel("Halos/Cell") plt.ylabel("Number Cells with N Halos") y = mlab.normpdf( bins, avg, sigma) print(len(y)) l = plt.plot(bins, y, 'r--', linewidth=1) plt.show() My first question is do x and y refer to the values in l = plt.plot(bins, y, 'r--', linewidth=1) which for my case are bins and y? if that is the case how can I get then to be the same first dimension? -- View this message in context: http://old.nabble.com/ValueError%3A-x-and-y-must-have-same-first-dimension-tp34218704p34218704.html Sent from the matplotlib - users mailing list archive at Nabble.com. |