|
From: surfcast23 <sur...@gm...> - 2012-07-27 20:57:28
|
Hi David,
I tried your fix
nbins = 20
n, bins, patches = plt.hist(C, nbins, 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( nbins, avg, sigma)
l = plt.plot(nbins, y, 'r--', linewidth=1)
plt.show()
But I am still getting the error. I printed y.shape which gave (216,) so
does that mean that bins also needs to have 216 as a first dimension? Thank
you
Khary
Daπid wrote:
>
> In the example you provide, bins is returned by the hist command,
> whereas in your code, bins is a number that you defined as 20. So,
> change:
>
> bins = 20
> plt.hist(C, bins, ...
>
> by:
>
> nbins = 20
> n, bins, patches = plt.hist(C, nbins, ...
>
>
> As a side comment, your data loading is too complex, and fail prone. I
> suggest you to have a look at the numpy function for that, loadfromtxt
> or (I like it more), genfromtxt. It would be something like:
>
> data=np.genfromtxt(F, delimiter=' ')
> C=data[:,3]
>
> Much easier, and way faster.
>
>
> Regards,
>
> David.
>
> On Fri, Jul 27, 2012 at 4:13 AM, surfcast23 <sur...@gm...> wrote:
>>
>> 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.
>>
>>
>> ------------------------------------------------------------------------------
>> Live Security Virtual Conference
>> Exclusive live event will cover all the ways today's security and
>> threat landscape has changed and how IT managers can respond. Discussions
>> will include endpoint security, mobile security and the latest in malware
>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
>> _______________________________________________
>> Matplotlib-users mailing list
>> Mat...@li...
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
--
View this message in context: http://old.nabble.com/ValueError%3A-x-and-y-must-have-same-first-dimension-tp34218704p34222551.html
Sent from the matplotlib - users mailing list archive at Nabble.com.
|