Stupid mistake, My data array was wrong I had it just to rotate and now it
is working.

On Thu, Sep 29, 2011 at 2:01 PM, Michal <micta...@gmail.com> wrote:

> Thank you for the links, but I had trouble to get them running with
> Matplotlib 1.0.1. However, I downloaded the source code from the Matplotlib
> book ( http://www.packtpub.com/support?nid=4110 ) and in chapter 9 is an
> example (7900_09_04_cvs.py) with work with csv files.
>
> I have tried to modify the original code, because my data is stored in
> dict. Please find below my problem code:
>
> import matplotlib.pyplot as plt
> import matplotlib.cm as cm
> import matplotlib.font_manager as font_manager
>
>
>     types = sorted(cul_stat.keys()) #year
>     print "types = ", types
>     data_info = {}
>
>     for type in types:
>         for d in cul_stat[type]['Total'].data_info.keys():
>             if d not in data_info:
>                 data_info[d] = 0
>
>     data_info_all = sorted(data_info.keys())
>     print "data_info_all = ", data_info_all #countries
>
>     data = []
>     for type in types:
>         data_amount = []
>         for d in data_info_all:
>             try:
>                 data_amount.append(cul_stat[type]['Total'].data_info[d])
>             except KeyError:
>                 data_amount.append(0)
>
>         data.append(data_amount)
>     print 'data = ',data
>
>     # prepare the bottom array
>     bottom = np.zeros(len(types))
>     print "bottom = ", bottom
>     width = .8
>     # for each line in data
>     for i in range(len(data)):
>         # create the bars for each element, on top of the previous bars
>         print "????", data[i], len(data[i])
>         bt = plt.bar(range(len(data[i])), data[i], width=width,
>                      color=cm.hsv(32*(i)), label=data_info_all[i],
>                      bottom=bottom)
>         # update the bottom array
>         bottom += data[i]
>
>     # label the X ticks with years
>     plt.xticks(np.arange(len(types))+width/2, types)
>
>     # some information on the plot
>     plt.xlabel('Years')
>     plt.ylabel('Population (in billions)')
>     plt.title('World Population: 1950 - 2050 (predictions)')
>
>     # draw a legend, with a smaller font
>     plt.legend(loc='upper left',
>                prop=font_manager.FontProperties(size=7))
>
>     plt.subplots_adjust(bottom=0.11, left=0.15)
>     plt.savefig('7900_09_04.png')
>
>
> Output:
> +++++++
>
> types =  ['d1', 'd2', 'd3', 'd4', 'd5']
> data_info_all =  ['x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x9',
> 'x10']
> data =  [[484, 1, 2, 1119, 3, 570, 314, 0, 1185, 420], [3236, 6, 4, 8099,
> 8, 3833, 2285, 3, 8054, 3170], [1396, 6, 2, 3588, 5, 1450, 1111, 3, 3478,
> 1380], [492, 2, 1, 1257, 3, 528, 298, 2, 1240, 506], [21, 0, 0, 44, 1, 20,
> 11, 0, 50, 17]]
>
> bottom =  [ 0.  0.  0.  0.  0.]
> ???? [484, 1, 2, 1119, 3, 570, 314, 0, 1185, 420] 10
> Traceback (most recent call last):
>   File "snp_density.py", line 196, in <module>
>     total_chr_overview(len_ref_seqs, cul_stat, args.chr)
>   File "snp_density.py", line 143, in total_chr_overview
>     bottom=bottom)
>   File
> "/home/uqmlore1/apps/pymodules/lib/python2.7/site-packages/matplotlib/pyplot.py",
> line 1908, in bar
>     ret = ax.bar(left, height, width, bottom, **kwargs)
>   File
> "/home/uqmlore1/apps/pymodules/lib/python2.7/site-packages/matplotlib/axes.py",
> line 4616, in bar
>     nbars)
> AssertionError: incompatible sizes: argument 'bottom' must be length 10 or
> scalar
> +++++
>
> What did I wrong?
>
> Thank you in advance.
>
>
>
> On Wed, Sep 28, 2011 at 5:13 PM, Klonuo Umom <klo...@gmail.com> wrote:
>
>> IMHO, when looking for basics and even more with intent to replicate some
>> graph, it's easy to start by looking at matplotlib gallery:
>> http://matplotlib.sourceforge.net/gallery.html and find best match.
>>
>> In you case:
>>
>> http://matplotlib.sourceforge.net/examples/pylab_examples/histogram_demo_extended.html
>> http://matplotlib.sourceforge.net/examples/pylab_examples/table_demo.html
>>
>> for stacked bars, then look at code magic.
>>
>> I'm new user to matplotlib also, and was looking for easy way to create
>> stacked bars some time ago, but unfortunately it's a bit more complicated
>> than regular plot 'stuff'. I found gnuplot easier for stacked bars, but than
>> as said my experience with matplotlib is basic
>>
>>
>> Cheers
>>
>>
>> On Wed, Sep 28, 2011 at 8:54 AM, Michal <micta...@gmail.com> wrote:
>>
>>> Hello,
>>> I have found the following histogram example
>>> http://gnuplot.sourceforge.net/demo/histograms.4.png
>>>
>>> which was created with the following gnuplot code:
>>> http://gnuplot.sourceforge.net/demo/histograms.4.gnu
>>>
>>> and with this data set
>>>
>>> http://212.182.0.171/cgi-bin/dwww/usr/share/doc/gnuplot-doc/examples/immigration.dat
>>>
>>> How is it possible to do this with Matplotlib?
>>>
>>> Thank you in advance.
>>>
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> All the data continuously generated in your IT infrastructure contains a
>>> definitive record of customers, application performance, security
>>> threats, fraudulent activity and more. Splunk takes this data and makes
>>> sense of it. Business sense. IT sense. Common sense.
>>> http://p.sf.net/sfu/splunk-d2dcopy1
>>> _______________________________________________
>>> Matplotlib-users mailing list
>>> Matplotlib-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>>
>>>
>>
>
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to