欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Matplotlib條形圖之分組條形圖和堆疊條形圖詳解

 更新時(shí)間:2022年03月09日 11:00:43   作者:你這個(gè)階段睡得著的  
這篇文章主要為大家詳細(xì)介紹了Matplotlib條形圖之分組條形圖和堆疊條形圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助

分組條形圖

拓展一下問(wèn)題復(fù)雜度:使用水平條形圖展示每位員工前三個(gè)月的銷售額。此時(shí),我們需要將每位員工的銷售額按月分組,分別繪制條形圖進(jìn)行展示。

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用來(lái)正常顯示中文標(biāo)簽
plt.rcParams['axes.unicode_minus'] = False  # 用來(lái)正常顯示負(fù)號(hào)
member = [u'小紅', u'小王', u'小李', u'小張']
sales_jan = [30, 42, 25, 35]  # 一月銷售額
sales_feb = [60, 55, 10, 27]  # 二月銷售額
sales_mar = [40, 20, 5, 68]  # 三月銷售額
bar_width = 0.2  # 設(shè)置分組條形的寬度
# 繪圖
plt.bar(range(4), sales_jan, label=u'一月', width=bar_width, align='center', color='steelblue', alpha=0.7)
# 也可以使用numpy模塊的arange()函數(shù)構(gòu)造橫坐標(biāo)
plt.bar(np.arange(4) + bar_width, sales_feb, label=u'二月', color='indianred', alpha=0.7, width=bar_width)
plt.bar(np.arange(4) + bar_width * 2, sales_mar, label=u'三月', color='green', alpha=0.7, width=bar_width)
# 添加Y軸標(biāo)簽
plt.ylabel(u'月度銷售額(萬(wàn)元)')
# 添加標(biāo)題
plt.title(u'員工第一季度銷售額對(duì)比')
# 添加刻度標(biāo)簽
plt.xticks(np.arange(4) + bar_width, member)
# 添加圖例
plt.legend()
plt.xlim(-0.5, 4.5)
plt.show()

請(qǐng)?zhí)砑訄D片描述

分組條形圖比簡(jiǎn)單條形圖的復(fù)雜之處在于,在放數(shù)據(jù) x 軸坐標(biāo)和刻度位置時(shí),需要進(jìn)行額外的計(jì)算和調(diào)整。在執(zhí)行坐標(biāo)的計(jì)算時(shí),推薦使用 numpy ,因?yàn)樗С謴V播機(jī)制,向量化的算術(shù)運(yùn)算更加簡(jiǎn)單。例如,上例中在設(shè)置第二個(gè)和第三個(gè)條形的 x 軸坐標(biāo)時(shí),我們使用了 np.arange(4) + bar_width 和 np.arange(4) + bar_width * 2,而利用 Python 列表實(shí)現(xiàn)將十分復(fù)雜。

堆疊條形圖

堆疊條形圖是分組條形圖展示的另一種形式,它把分類的數(shù)據(jù)堆疊在一起,顯得更簡(jiǎn)約緊密,同時(shí)提供了求和信息。在實(shí)現(xiàn)上,繪制的思路與條形圖相似,不過(guò)前者是垂直偏移,后者是水平偏移。

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用來(lái)正常顯示中文標(biāo)簽
plt.rcParams['axes.unicode_minus'] = False  # 用來(lái)正常顯示負(fù)號(hào)
member = [u'小紅', u'小王', u'小李', u'小張']
sales_jan = [30, 42, 25, 35]  # 一月銷售額
sales_feb = [60, 55, 10, 27]  # 二月銷售額
sales_mar = [40, 20, 5, 68]  # 三月銷售額
bar_width = 0.2  # 設(shè)置分組條形的寬度
# 繪圖
plt.bar(np.arange(4), sales_jan, label=u'一月', color='steelblue', alpha=0.7)
plt.bar(np.arange(4), sales_feb, bottom=sales_jan, label=u'二月', color='indianred', alpha=0.7)
plt.bar(np.arange(4), sales_mar, bottom=np.array(sales_jan) + np.array(sales_feb), label=u'三月', color='green',
        alpha=0.7)
# 添加Y軸標(biāo)簽
plt.ylabel(u'月度銷售額(萬(wàn)元)')
# 添加標(biāo)題
plt.title(u'員工第一季度銷售額對(duì)比')
# 添加刻度標(biāo)簽
plt.xticks(np.arange(4), member)
# 添加圖例
plt.legend()
plt.xlim(-0.5, 4.5)
plt.show()

請(qǐng)?zhí)砑訄D片描述

這里有兩點(diǎn)非常關(guān)鍵:一是 botom 選項(xiàng)的使用讓數(shù)據(jù)在該基礎(chǔ)之上有一個(gè)偏移;二是 NumPy 模塊 array()函數(shù)的使用,將列表類型的數(shù)據(jù)轉(zhuǎn)換為 ndarray ,以便元素級(jí)別(向量化)運(yùn)算。

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!  

相關(guān)文章

最新評(píng)論