簡介
安裝 Matplotlib
開始繪制
簡單柱狀圖
改變顏色
改變紋理
改變邊框樣式
改變透明度
改變柱子寬度
改變圖表標題
?編輯
并列柱狀圖
橫向柱狀圖
堆疊柱狀圖
更多函數
簡介
柱狀圖(Bar chart),是一種以長方形的長度為變量的表達圖形的統計圖。
由一系列高度不等的縱向條形表示數據分布的情況,能直觀地對比不同數據,以及快速判斷最大值、最小值等。
柱狀圖有不同的繪制方式,可以是縱向,也可以是橫向,可以是平面,也可以是立體。
以下就是一種最普通的柱狀圖:
那么,開始吧!(記得?點贊收藏 !!)?
安裝 Matplotlib
打開 CMD, 輸入(前提是要安裝 Python):
pip install matplotlib
如果下載較慢,建議使用國內鏡像:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib
開始繪制
在 Python 中,數據可視化第三方庫 Matplotlib 可以很方便快捷地繪制圖表。
在 Matplotlib 中,繪制柱狀圖的函數如下:
bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)
簡單柱狀圖
先看代碼(請結合注釋食用!):
其中,修改 name 即可改變橫軸標簽,修改 value 即可改變數值。
import matplotlib.pyplot as plt # 導入第三方庫
name = [1, 2, 3, 4, 5] # 橫軸上的標簽
value = [10, 25, 17, 8, 20] # 數值(和橫軸標簽一一對應)
plt.bar(name, value) # 繪制柱狀圖
plt.show() # 顯示柱狀圖
改變顏色
修改全部顏色:
參數名稱為 fc / facecolor, 參數值可以為:r, g, b, y, c, m, k, w 等,更多關于顏色的可以看這篇文章:一文搞懂matplotlib中的顏色設置,講的很全。
import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.bar(name, value, fc="r") # 修改全部顏色為紅色
plt.show()
修改部分顏色:
參數名為 color。
import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
# 修改顏色分別為:紅,黃,藍,綠,黃
plt.bar(name, value, color=["r", "y", "b", "g", "y"])
plt.show()
改變紋理
參數名為 hatch,參數值可以為:/,o,O,x,-,+ 等。
import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.bar(name, value, hatch="x") # 將紋理改成"x"樣紋路
plt.show()
改變邊框樣式
顏色參數:ec / edgecolor
線形參數:ls / linestyle,參數值可以為:-(實線),--(虛線)
線寬參數:lw / linewidth
import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.bar(name, value, ec="black", ls="-", lw=2) # 將邊框改為黑色,實線,寬度為2
plt.show()
改變透明度
參數名稱:alpha,參數值為 0 ~ 1 中的小數,默認為1.
import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.bar(name, value, alpha=0.6) # 透明度改為60%
plt.show()
改變柱子寬度
參數名稱:width,參數一般在 0 ~ 1 之間,默認值為 0.8.
import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.bar(name, value, width=0.6) # 寬度改為 0.6
plt.show()
?
改變圖表標題
函數:plt.title()
import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.bar(name, value)
plt.title("TITLE") # 設置標題
plt.show()
并列柱狀圖
需要調整不同柱子的位置來實現并列,有些復雜。
import numpy as np # 只是輔助生成列表用的x = np.arange(3)
x1 = [79, 88, 80]
x2 = [80, 82, 83]total_width, n = 0.6, 2
width = total_width / n
x = x - (total_width - width) / 2 # 現在的x是每個并列柱的第一柱的中心橫坐標plt.bar(x, x1, width=width, label='Boy') # 圖一
plt.bar(x + width, x2, width=width, label='Girl', fc='y') # 圖二
plt.xticks(np.arange(3), ['Chinese', 'Math', 'English']) # 更改橫軸標簽
plt.legend() # 添加圖例
plt.title("Exam Result")
plt.show()
?
橫向柱狀圖
函數名:plt.barh()?,參數和 bar()?差不多。
import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.barh(name, value)
plt.show()
堆疊柱狀圖
參數名稱:bottom,將堆疊在上面的圖表中 bottom 設為下面的圖表地數據即可。
x = ["team1", "team2", "team3"]
x1 = [5, 8, 4]
x2 = [6, 8, 11]plt.bar(x, x1, label='boy')
plt.bar(x, x2, bottom=x1, label='girl')
plt.legend()
plt.show()
更多函數
plt.xticks() # 橫軸數據
plt.yticks() # 縱軸數據
plt.xlabel() # 橫軸標題
plt.ylabel() # 縱軸標題
plt.legend() # 圖例
plt.text() # 文字
本文就到這里,也算是能畫出一個美觀的柱狀圖了!
如果本文對你有幫助的話,別忘?點贊收藏,防止下次找不到了!