2017-12-24 27 views
1

は、私は、値が人々の数ですだ2つの辞書...matplotlibの積み重ね棒を分離する方法は?

d_1={1947: 1, 1950: 1, 1951: 2, 1955: 2, 1956: 1, 1957: 2, 1958: 2, 1959: 3, 1960: 1....} 

d_2={1936: 1, 1945: 1, 1948: 2, 1949: 1, 1950: 2, 1951: 2, 1952: 3, 1953: 1, 1954: 41..} 

を持っていると私は人々の数を表示するバーグラフを作成したいです。そして、X軸は年に形成されます。

このコードフォーマットは、積み重ねたバーを除いてほぼ同じです。私はそれらを別々にして欲しい。どうすれば修正できるの?

import matplotlib.pyplot as plt 
import numpy as np 
import matplotlib.pyplot as plt; plt.rcdefaults() 

    x1=[t for t in d_1.keys()] 
    y1=[k for k in d_1.values()] 
    x2=[m for m in d_2.keys()] 
    y2=[n for n in d_2.values()] 


    fig, ax = plt.subplots() 

    index = np.arange(len(years_without_duplicates)) 
    #list which has the years without duplicates 

    bar_width = 0.35 

    rects1 = plt.bar(x1, y1, bar_width,color='b') 
    rects2 = plt.bar(x2, y2, bar_width, color='r') 

    plt.xlabel('Years') 
    plt.ylabel('number of people') 
    plt.xticks([i for i in range(min(years_without_duplicates),max(years_without_duplicates)+1)],rotation=80,fontsize=6) 

    plt.legend() 



    plt.tight_layout() 

    plt.show() 

my bars are stacked but i want them to be seperated.

答えて

2

だけのバーをシフト:

bar_width = 0.35 
x1 = [t - bar_width/2 for t in d_1.keys()] 
y1 = [k for k in d_1.values()] 
x2 = [m + bar_width/2 for m in d_2.keys()] 
y2 = [n for n in d_2.values()] 

enter image description here

+0

は、それが働いて助けてくれてありがとう。 – Beyza

関連する問題