More efficient matplotlib stacked bar chart - how to calculate bottom values

前端 未结 4 496
悲哀的现实
悲哀的现实 2021-01-30 23:26

I need some help making a set of stacked bar charts in python with matlibplot. My basic code is below but my problems is how to generate the value for bottom fo

4条回答
  •  旧巷少年郎
    2021-01-31 00:24

    I have just recently faced the same problem. Afterwards I decided to wrap it all up in a nice class. For anyone interested you get an implementation of a stacked bar graph class here:

    https://github.com/minillinim/stackedBarGraph

    It allows scaled stacked graphs as well as setting bar widths and set heights (with scaled inners).

    Given a data set like this:

        d = np.array([[101.,0.,0.,0.,0.,0.,0.],
                      [92.,3.,0.,4.,5.,6.,0.],
                      [56.,7.,8.,9.,23.,4.,5.],
                      [81.,2.,4.,5.,32.,33.,4.],
                      [0.,45.,2.,3.,45.,67.,8.],
                      [99.,5.,0.,0.,0.,43.,56.]])
    
        d_heights = [1.,2.,3.,4.,5.,6.]
        d_widths = [.5,1.,3.,2.,1.,2.]
        d_labels = ["fred","julie","sam","peter","rob","baz"]
        d_colors = ['#2166ac',
                    '#fee090',
                    '#fdbb84',
                    '#fc8d59',
                    '#e34a33',
                    '#b30000',
                    '#777777']
    

    It can make images like this:

    stacked bar graph

    GPLv3 with love.

提交回复
热议问题