Python繪制柱狀圖


1.1Python繪制柱狀圖對應代碼如下所示

import matplotlib.pyplot as plt
import numpy as np

from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['STZhongsong']    # 指定默認字體:解決plot不能顯示中文問題
mpl.rcParams['axes.unicode_minus'] = False

x=["孫悟空","唐僧","豬八戒","沙悟凈"]

y=[4,1,3,2]

plt.bar(x,y,width=0.5,align="center",label="戰力值",color="red")

plt.title("師徒戰力排行榜",loc="center")

for a,b in zip(x,y):
 plt.text(a,b,b,ha='center',va="bottom",fontsize=12)

plt.xlabel('姓名')

plt.ylabel('戰力值')

plt.legend()

plt.show()

1.2、最終結果如下圖所示

 1.3Python繪制橫向柱狀圖

import matplotlib.pyplot as plt
import numpy as np

from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['STZhongsong']    # 指定默認字體:解決plot不能顯示中文問題
mpl.rcParams['axes.unicode_minus'] = False

x=["孫悟空","唐僧","豬八戒","沙悟凈","牛魔王","哪吒","二郎神"]

y=[10,1,6,5,7,8,9]

plt.barh(x,width=y,height=0.6,align="center",label="戰力值",color="green",edgecolor="rgb")
'''
width 表示柱子的寬度,每根柱子的寬度可以都一樣,也可以各不相同
align center:表示柱子位於x值的中心位置,edge:表示柱子位於x值的右邊
color 柱子的顏色
edgecolor 柱子邊緣的顏色
'''
plt.title("戰力排行榜",loc="center")

for a,b in zip(x,y):
 plt.text(b,a,b,ha='center',va="bottom",fontsize=12)

plt.xlabel('姓名')

plt.ylabel('戰力值')

plt.legend()

plt.show()

1.4最終結果如下圖所示

 1.5Python繪制堆疊柱狀圖

import matplotlib.pyplot as plt
import numpy as np

from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['STZhongsong']    # 指定默認字體:解決plot不能顯示中文問題
mpl.rcParams['axes.unicode_minus'] = False

x=["唐僧","孫悟空","豬八戒","沙悟凈"]

y1=[10,6,3,7]

y2=[3,10,7,6]

list3=[]
for i in range(len(y1)):
    new_value=y1[i]+y2[i]
    list3.append(new_value)

plt.bar(x,y1,width=0.3,label="魅力值",color="orange")

plt.bar(x,y2,width=0.3,label="武力值",color="red",bottom=y1)

plt.title("師徒戰力排行榜")

for a,b in zip(x,y1):
 plt.text(a,b,b,ha='center',va="top",fontsize=12)

for a,b,c in zip(x,list3,y2):
 plt.text(a,b,c,ha='center',va="bottom",fontsize=12)

plt.xlabel('姓名')

plt.ylabel('魅力值')

plt.legend(loc="best")

plt.show()

1.6最終結果如下圖所示

1.7Python繪制並列柱狀圖

import matplotlib.pyplot as plt
import numpy as np

from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['STZhongsong']    # 指定默認字體:解決plot不能顯示中文問題
mpl.rcParams['axes.unicode_minus'] = False

plt.subplot(1,1,1)

x=np.array([1,2,3,4])

y1=[10,6,3,7]

y2=[3,10,7,6]

plt.bar(x,y1,width=0.3,align="center",label="魅力值")

plt.bar(x+0.3,y2,width=0.3,align="center",label="武力值")

plt.title("師徒戰力排行榜")

for a,b in zip(x,y1):
 plt.text(a,b,b,ha='center',va="bottom",fontsize=12)

for a,b in zip(x+0.3,y2):
 plt.text(a,b,b,ha='center',va="bottom",fontsize=12)

plt.xlabel('姓名')

plt.ylabel('魅力值')

plt.xticks(x+0.15,["唐僧","孫悟空","豬八戒","沙悟凈"])

plt.legend()

plt.show()

1.8最終結果如下所示

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM