1、繪制柱狀圖
1 import matplotlib 2 import matplotlib.pyplot as plt 3 4 # 顯示中文標識 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 6 matplotlib.rcParams["axes.unicode_minus"] = False 7 8 # 柱狀圖中柱體標簽值 9 x = [1,2,3,4,5] 10 11 # 柱狀圖中柱體的高度 12 y = [6,10,4,5,1] 13 14 # ========================柱狀圖========================= 15 plt.bar(x, # 柱體X軸標簽值 16 y, # 柱體的高度 17 align="center", # 柱體對齊樣式 18 color="b", # 柱體顏色 19 tick_label=["A","B","C","D","E"], # 刻度標簽值 20 alpha=0.6) # 柱體透明度 21 plt.xlabel("測試難度") 22 plt.ylabel("試卷份數") 23 24 # 繪制網格線 25 plt.grid(axis="x", # 網格在x軸上 26 ls=":", # 網格樣式 27 color="r", # 網格顏色 28 alpha=0.3) # 網格透明度 29 plt.show()
2、繪制條形圖
1 import matplotlib 2 import matplotlib.pyplot as plt 3 4 # 顯示中文標識 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 6 matplotlib.rcParams["axes.unicode_minus"] = False 7 8 # 柱狀圖中柱體標簽值 9 x = [1,2,3,4,5] 10 11 # 柱狀圖中柱體的高度 12 y = [6,10,4,5,1] 13 14 # ========================條形圖========================= 15 plt.barh(x, # 條形圖X軸標簽值 16 y, # 條形圖的寬度 17 align="center", # 柱體對齊樣式 18 color="b", # 條形圖顏色 19 tick_label=["A","B","C","D","E"], # 刻度標簽值 20 alpha=0.6) # 條形圖透明度 21 plt.xlabel("試卷份數") 22 plt.ylabel("測試難度") 23 24 # 繪制網格線 25 plt.grid(axis="x", # 網格在x軸上 26 ls=":", # 網格樣式 27 color="r", # 網格顏色 28 alpha=0.3) # 網格透明度 29 plt.show()
3、堆積柱狀圖
1 import matplotlib 2 import matplotlib.pyplot as plt 3 4 # 顯示中文標識 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 6 matplotlib.rcParams["axes.unicode_minus"] = False 7 8 # 柱狀圖中柱體標簽值 9 x = [1,2,3,4,5] 10 11 # 柱狀圖中柱體的高度(兩份試卷) 12 y = [6,10,4,5,1] 13 y1 = [2,6,3,8,5] 14 15 # ========================堆積柱狀圖========================= 16 plt.bar(x, # 柱體X軸標簽值 17 y, # 柱體的高度 18 align="center", # 柱體對齊樣式 19 color="b", # 柱體顏色 20 tick_label=["A","B","C","D","E"], # 刻度標簽值 21 alpha=0.6, # 柱體透明度 22 label="班級A") 23 plt.bar(x, # 柱體X軸標簽值 24 y1, # 柱體的高度 25 bottom=y, # 柱狀圖的起始位置 26 align="center", # 柱體對齊樣式 27 color="c", # 柱體顏色 28 alpha=0.6, # 柱體透明度 29 label="班級B") 30 plt.xlabel("測試難度") 31 plt.ylabel("試卷份數") 32 33 # 添加圖例 34 plt.legend() 35 plt.show()
4、堆積條形圖
1 import matplotlib 2 import matplotlib.pyplot as plt 3 4 # 顯示中文標識 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 6 matplotlib.rcParams["axes.unicode_minus"] = False 7 8 # 柱狀圖中柱體標簽值 9 x = [1,2,3,4,5] 10 11 # 柱狀圖中柱體的高度(兩份試卷) 12 y = [6,10,4,5,1] 13 y1 = [2,6,3,8,5] 14 15 # ========================堆積條形圖========================= 16 plt.barh(x, # 條形圖X軸標簽值 17 y, # 條形圖的寬度 18 align="center", # 條形圖對齊樣式 19 color="b", # 條形圖顏色 20 tick_label=["A","B","C","D","E"], # 刻度標簽值 21 alpha=0.6, # 條形圖透明度 22 label="班級A") 23 plt.barh(x, # 條形圖X軸標簽值 24 y1, # 條形圖的寬度 25 left=y, # 條形圖的起始位置 26 align="center", # 條形圖對齊樣式 27 color="c", # 條形圖顏色 28 alpha=0.6, # 條形圖透明度 29 label="班級B") 30 plt.xlabel("試卷份數") 31 plt.ylabel("測試難度") 32 33 # 添加圖例 34 plt.legend() 35 plt.show()
5、多數據並列柱狀圖
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 顯示中文標識 6 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 7 matplotlib.rcParams["axes.unicode_minus"] = False 8 x = np.arange(5) 9 y = [6,10,4,5,1] 10 y1 = [2,6,3,8,5] 11 12 # =================多數據並列柱狀圖================= 13 plt.bar(x=x, # x軸坐標的刻度 14 height=y, # 柱狀圖的高度 15 width=0.35, # 柱狀圖的寬度 16 color="c", # 柱狀圖的顏色 17 align="center", # 柱狀圖的對齊樣式 18 label="班級A", # 柱狀圖的標簽 19 alpha=0.5) # 柱狀圖的透明度 20 plt.bar(x=x+0.35, 21 height=y1, 22 width=0.35, 23 color="b", 24 align="center", 25 label="班級B", 26 alpha=0.5) 27 plt.xlabel("測試難度") 28 plt.ylabel("試卷份數") 29 plt.xticks(ticks=x+0.35/2, # 兩個柱狀圖的中間 30 labels=["A","B","C","D","E"])# 在這兩個柱狀圖中間用標簽標示 31 # 顯示圖例 32 plt.legend() 33 plt.show()
6、多數據並列條狀圖
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 顯示中文標識 6 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 7 matplotlib.rcParams["axes.unicode_minus"] = False 8 x = np.arange(5) 9 y = [6,10,4,5,1] 10 y1 = [2,6,3,8,5] 11 12 # =================多數據並列條狀圖================= 13 plt.barh(y=x, # x軸坐標的刻度 14 width=y, # 柱狀圖的寬度 15 height=0.35, # 柱狀圖的高度 16 color="c", # 柱狀圖的顏色 17 align="center", # 柱狀圖的對齊樣式 18 label="班級A", # 柱狀圖的標簽 19 alpha=0.5) # 柱狀圖的透明度 20 plt.barh(y=x+0.35, 21 width=y1, 22 height=0.35, 23 color="b", 24 align="center", 25 label="班級B", 26 alpha=0.5) 27 plt.xlabel("試卷份數") 28 plt.ylabel("測試難度") 29 plt.yticks(ticks=x+0.35/2, # 兩個柱狀圖的中間 30 labels=["A","B","C","D","E"])# 在這兩個柱狀圖中間用標簽標示 31 # 顯示圖例 32 plt.legend() 33 plt.show()
7、hatch柱狀圖的填充樣式
1 import matplotlib 2 import matplotlib.pyplot as plt 3 4 # 顯示中文標識 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 6 matplotlib.rcParams["axes.unicode_minus"] = False 7 8 x = [1,2,3,4,5] 9 y = [6,10,4,5,1] 10 # ======================hatch柱狀圖的填充樣式================= 11 plt.bar(x=x, # X軸上的刻度 12 height=y, # 柱狀圖的高度 13 align="center", # 柱狀圖的對齊樣式 14 color="c", # 柱狀圖的顏色 15 tick_label=["A","B","C","D","E"], # 柱狀圖X軸的替換標簽 16 hatch="*") # 柱狀圖的填充樣式,可選/,|,\\,-,*等 17 plt.xlabel("測試難度") 18 plt.ylabel("試卷份數") 19 plt.show()
8、堆積折線圖
1 import matplotlib.pyplot as plt 2 import numpy as np 3 4 x = np.arange(1,6,1) 5 y = [0,4,3,5,6] 6 y1 = [1,3,4,2,7] 7 y2 = [3,4,1,6,5] 8 9 labels = ["RedPlanet","GreenPlanet","BluePlanet"] 10 colors = ["r","g","b"] 11 12 # ==================堆積折線圖===================== 13 plt.stackplot(x, # X軸坐標刻度 14 y, # 紅色堆積塊數據 15 y1, # 綠色堆積塊數據 16 y2, # 藍色堆積塊數據 17 labels=labels, # 堆積塊標簽 18 colors=colors) # 堆積塊填充顏色 19 plt.grid(axis="y") 20 plt.legend(loc="upper left") 21 plt.show()
9、broken_barh繪制間斷條形圖
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 顯示中文標識 6 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 7 matplotlib.rcParams["axes.unicode_minus"] = False 8 9 # =====================broken_barh繪制間斷條形圖==================== 10 plt.broken_barh([(30,100), # 起點從x軸數值為30的地方沿X軸正方形移動100個單位 11 (180,50), 12 (260,70)], 13 (20,8), # 起點從Y軸數值為20的地方沿Y軸正方形移動8個單位 14 facecolors="#1f78b4") # 填充顏色 15 plt.broken_barh([(60,90), 16 (190,20), 17 (230,30), 18 (280,60)], 19 (10,8), 20 facecolors=("c","r","g","b")) 21 plt.xlim(0,360) 22 plt.ylim(5,35) 23 plt.xlabel("演出時間") 24 plt.xticks(np.arange(0,361,60)) 25 plt.yticks(ticks=[15,25],labels=["歌劇院A","歌劇院B"]) 26 plt.grid(ls="-",color="gray") 27 plt.title("不同地區的歌劇院演出時間比較") 28 plt.show()
10、step繪制階梯圖
1 import matplotlib.pyplot as plt 2 import numpy as np 3 4 # 返回10個指定間隔(1-10)內的等距數字 5 x = np.linspace(1,10,10) 6 y = np.sin(x) 7 8 # =======================step繪制階梯圖========================= 9 plt.step(x, 10 y, 11 color="c", # 線條顏色 12 where="pre",# 表示在X軸上的取值對應到Y軸上的數值向左側相鄰點繪制水平線(左開右閉) 13 # where="post",# 表示在X軸上的取值對應到Y軸上的數值向右側相鄰點繪制水平線(左閉右開) 14 lw=2) # 線條寬度 15 plt.xlim(0,11) 16 plt.xticks(np.arange(1,11,1)) 17 plt.ylim(-1,1) 18 plt.show()
11、hist直方圖
# ========================================定量數據的分布展示(連續)========================================= import matplotlib import matplotlib.pyplot as plt import numpy as np # 顯示中文標識 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] matplotlib.rcParams["axes.unicode_minus"] = False # 隨機返回100個0到100的整形數組 scoresT = np.random.randint(0,100,100) # 從0到101當中確定10個柱體個數,如[0,10),[10,20)...[90,100] bins = range(0,101,10) # ===================hist直方圖==================== plt.hist(x=scoresT, # 連續型輸入數據 bins=bins, # 用於確定柱體的個數或柱體的邊緣范圍 color="c", # 柱體填充顏色 histtype="bar",# 柱體類型 rwidth=10) # 柱體寬度 plt.xlabel("測試成績") plt.ylabel("學生人數") plt.show()
12、hist堆積直方圖
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 顯示中文標識 6 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 7 matplotlib.rcParams["axes.unicode_minus"] = False 8 9 # 隨機返回100個0到100的整形數組 10 scoresT1 = np.random.randint(0,100,100) 11 scoresT2 = np.random.randint(0,100,100) 12 13 x = [scoresT1,scoresT2] 14 color = ["c","r"] 15 labels = ["班級A","班級B"] 16 17 # 從0到101當中確定10個柱體個數,如[0,10),[10,20)...[90,100] 18 bins = range(0,101,10) 19 20 # ===================hist堆積直方圖==================== 21 plt.hist(x=x, # 連續型輸入數據 22 bins=bins, # 用於確定柱體的個數或柱體的邊緣范圍 23 color=color, # 柱體填充顏色 24 histtype="bar",# 柱體類型 25 rwidth=10, # 柱體寬度 26 stacked=True, # 表示堆積直方圖,若為FALSE則直方圖並排而不是堆積 27 label=labels) 28 plt.xlabel("測試成績") 29 plt.ylabel("學生人數") 30 plt.title("不同班級的測試成績的直方圖") 31 plt.legend(loc="upper left") 32 plt.show()
13、hist堆積階梯型直方圖
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 5 # 顯示中文標識 6 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 7 matplotlib.rcParams["axes.unicode_minus"] = False 8 9 # 隨機返回100個0到100的整形數組 10 scoresT1 = np.random.randint(0,100,100) 11 scoresT2 = np.random.randint(0,100,100) 12 13 x = [scoresT1,scoresT2] 14 color = ["c","r"] 15 labels = ["班級A","班級B"] 16 17 # 從0到101當中確定10個柱體個數,如[0,10),[10,20)...[90,100] 18 bins = range(0,101,10) 19 20 # ===================hist堆積階梯型直方圖==================== 21 plt.hist(x=x, # 連續型輸入數據 22 bins=bins, # 用於確定柱體的個數或柱體的邊緣范圍 23 color=color, # 柱體填充顏色 24 histtype="stepfilled",# 柱體類型 25 rwidth=10, # 柱體寬度 26 stacked=True, # 表示堆積直方圖,若為FALSE則直方圖並排而不是堆積 27 label=labels) 28 plt.xlabel("測試成績") 29 plt.ylabel("學生人數") 30 plt.title("不同班級的測試成績的直方圖") 31 plt.legend(loc="upper left") 32 plt.show()
14、pie繪制分裂餅圖
1 # ========================================定性數據的分布展示(離散)========================================= 2 import matplotlib 3 import matplotlib.pyplot as plt 4 5 # 顯示中文標識 6 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 7 matplotlib.rcParams["axes.unicode_minus"] = False 8 9 # 標記每份餅片的文本標簽內容 10 labels = ["A難度水平","B難度水平","C難度水平","D難度水平"] 11 students = [0.35,0.15,0.20,0.3] # 難度占比 12 colors = ["r","g","b","c"] # 餅片的填充顏色 13 explode = (0.3,0.1,0.1,0.1) # 餅片邊緣偏離半徑的百分比 14 15 # ========================pie繪制分裂餅圖========================== 16 plt.pie(x=students, # 難度占比 17 explode=explode, # 餅片邊緣偏離半徑的百分比 18 labels=labels, # 標記餅片的文本標簽內容 19 autopct="%3.1f%%", # 餅片文本標簽內容對呀的數值百分比樣式 20 startangle=45, # 從x軸作為其實位置,第一個餅片逆時針旋轉的角度 21 shadow=True, # 是否繪制餅片的陰影 22 colors=colors) # 每份餅片的顏色 23 plt.title("選擇不同難度測試試卷的學生百分比") 24 plt.show()
15、pie繪制非分裂餅圖
1 import matplotlib 2 import matplotlib.pyplot as plt 3 4 # 顯示中文標識 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 6 matplotlib.rcParams["axes.unicode_minus"] = False 7 8 # 標記每份餅片的文本標簽內容 9 labels = ["A難度水平","B難度水平","C難度水平","D難度水平"] 10 students = [0.35,0.15,0.20,0.3] # 難度占比 11 colors = ["r","g","b","c"] # 餅片的填充顏色 12 13 # ========================pie繪制非分裂餅圖========================== 14 plt.pie(x=students, # 難度占比 15 labels=labels, # 標記餅片的文本標簽內容 16 autopct="%3.1f%%", # 餅片文本標簽內容對呀的數值百分比樣式 17 startangle=45, # 從x軸作為其實位置,第一個餅片逆時針旋轉的角度 18 pctdistance=0.7, # 控制百分比顯示位置(以半徑長度比例值作為顯示位置依據) 19 labeldistance=1.2, # 控制文本標簽顯示位置(以半徑長度比例值作為顯示位置依據) 20 colors=colors, # 每份餅片的顏色 21 ) 22 plt.title("選擇不同難度測試試卷的學生百分比") 23 plt.show()
16、內嵌餅圖
1 import matplotlib 2 import matplotlib.pyplot as plt 3 4 # 顯示中文標識 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] 6 matplotlib.rcParams["axes.unicode_minus"] = False 7 8 9 elements = ["面粉","砂糖","奶油","草莓醬","堅果"] # 面包的主要成分 10 weight1 = [40,15,20,10,15] # 面包主要成分的比重1 11 weight2 = [30,25,15,20,10] # 面包主要成分的比重1 12 13 outer_colors = ["r","g","b","c","m"] # 內嵌餅圖外層顏色 14 inner_colors = ["r","g","b","c","m"] # 內嵌餅圖內層顏色 15 16 # ==========================內嵌餅圖(外層)============================ 17 # wedges:餅片。texts:分類標簽的文本列表。autotexts:百分比部分的文本列表 18 wedges1,texts1,autotexts1 = plt.pie(x=weight1, # 難度占比 19 autopct="%3.1f%%", # 餅片文本標簽內容對呀的數值百分比樣式 20 radius=1, # 外層餅圖半徑 21 pctdistance=0.85, 22 colors=outer_colors, # 外層餅圖顏色 23 textprops=dict(color="w"), # 設置餅圖中顯示百分比例數字的字體顏色 24 wedgeprops=dict(width=0.3,edgecolor="w")) # 環的寬度,還有環的最外側的邊界顏色 25 # ==========================內嵌餅圖(內層)============================ 26 wedges2,texts2,autotexts2 = plt.pie(x=weight2, 27 autopct="%3.1f%%", 28 radius=0.7, 29 pctdistance=0.75, 30 colors=inner_colors, 31 textprops=dict(color="w"), 32 wedgeprops=dict(width=0.3,edgecolor="w")) 33 # 設置圖例 34 plt.legend(wedges1, # 餅片數據 35 elements, # 面包的主要成分 36 fontsize=12, # 圖例字體大小 37 title="配料表", # 圖例標題 38 loc="center left", # 圖例所在的位置(左中) 39 bbox_to_anchor=(0.91,0,0.3,1)) # 確定圖例在軸的相對位置,第一個參數是x,第二個是y 40 41 # 設置百分比文本樣式 42 plt.setp(autotexts1, # 外層餅圖百分比 43 size=15, # 外層餅圖百分比字體大小 44 weight="bold") # 外層餅圖百分比字體樣式 45 plt.setp(autotexts2, 46 size=15, 47 weight="bold") 48 49 # 設置分類標簽樣式 50 plt.setp(texts1, # 分類標簽的文本列表 51 size=12) # 分類標簽的文本列表字體大小 52 plt.title("不同果醬面包配料比例表的比較") 53 plt.show()
17、boxplot繪制箱線
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 # 顯示中文標識 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] # 設置字體為SimHei 6 matplotlib.rcParams["axes.unicode_minus"] = False # 放棄使用unicode_minus 7 8 testA = np.random.randn(5000) 9 testB = np.random.randn(5000) 10 11 testList = [testA,testB] 12 labels = ["隨機數生成器AlphaRM","隨機數生成器BetaRMB"] 13 colors = ["c","r"] 14 15 whis = 1.6 16 width = 0.35 17 18 # ==========================boxplot繪制箱線圖============================== 19 bplot = plt.boxplot(x=testList, # 繪制箱線圖輸入的數據 20 whis=whis, # 四分位間距倍數,用來確定箱須包含數據范圍的大小 21 widths=width, # 設置箱體的寬度 22 sym="o", # 離散值群的標記樣式 23 labels=labels, # 繪制每個數據集的刻度標簽 24 notch=True, # 設置該參數會使箱體上下呈V型 25 patch_artist=True) # 是否給箱體添加顏色 26 for patch,color in zip(bplot["boxes"],colors): 27 patch.set_facecolor(color) 28 29 plt.ylabel("隨機數值") 30 plt.title("生成器抗干擾能力的穩定性比較") 31 32 plt.grid(axis="y", 33 ls=":", 34 lw=1, 35 color="gray", 36 alpha=0.4) 37 plt.show()
18、boxplot繪制水平箱線圖
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 # 顯示中文標識 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] # 設置字體為SimHei 6 matplotlib.rcParams["axes.unicode_minus"] = False # 放棄使用unicode_minus 7 8 x = np.random.randn(1000) 9 10 # ==========================boxplot繪制水平箱線圖============================== 11 bplot = plt.boxplot(x=x, # 繪制箱線圖輸入的數據 12 vert=False) # 是否繪制垂直水平箱線圖,False為水平 13 14 plt.xlabel("隨機數值") 15 plt.yticks([1],["隨機數生成器AlphaRM"],rotation=90) 16 plt.title("生成器抗干擾能力的穩定性比較") 17 18 plt.grid(axis="x", 19 ls=":", 20 lw=1, 21 color="gray", 22 alpha=0.4) 23 plt.show()
19、boxplot不繪制離群值水平箱線圖
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 # 顯示中文標識 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] # 設置字體為SimHei 6 matplotlib.rcParams["axes.unicode_minus"] = False # 放棄使用unicode_minus 7 8 x = np.random.randn(1000) 9 10 # ==========================boxplot不繪制離群值水平箱線圖============================== 11 bplot = plt.boxplot(x=x, # 繪制箱線圖輸入的數據 12 showfliers=False, # 不繪制離群值 13 vert=False) # 是否繪制垂直水平箱線圖,False為水平 14 15 plt.xlabel("隨機數值") 16 plt.yticks([1],["隨機數生成器AlphaRM"],rotation=90) 17 plt.title("生成器抗干擾能力的穩定性比較") 18 19 plt.grid(axis="x", 20 ls=":", 21 lw=1, 22 color="gray", 23 alpha=0.4) 24 plt.show()
20、errorbar誤差棒
1 import matplotlib.pyplot as plt 2 import numpy as np 3 4 x = np.linspace(0.1,0.6,10) 5 y = np.exp(x) 6 7 error = 0.05+0.15*x 8 lower_error = error 9 upper_error = 0.3*error 10 error_limit = [lower_error,upper_error] 11 12 # ======================errorbar誤差棒============================ 13 plt.errorbar(x=x, # x軸上的數據點位置 14 y=y, # y軸上的數據點位置 15 yerr=error_limit, # 單一數值非對稱形式誤差范圍 16 fmt=":o", # 數據點之間的標記樣式和連接樣式 17 ecolor="y", # 誤差棒的顏色 18 elinewidth=4, # 誤差棒線條的粗細 19 ms=5, # 數據點大小 20 mfc="c", # 數據點標記顏色 21 mec="r", # 數據點標記邊緣顏色 22 capthick=1, # 誤差棒邊界橫杠的厚度 23 capsize=2) # 誤差棒邊界橫杠的大小 24 plt.xlim(0,0.7) 25 plt.show()
21、帶誤差棒的柱狀圖
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 # 顯示中文標識 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] # 設置字體為SimHei 6 matplotlib.rcParams["axes.unicode_minus"] = False # 放棄使用unicode_minus 7 8 x = np.arange(5) # x 軸刻度 9 y = [100,68,79,91,82] # 芒果收割量 10 std_err = [7,2,6,10,5] # 每個園區的誤差 11 error_attri = dict(elinewidth=2,ecolor="black",capsize=3) # 誤差棒的屬性設置 12 tick_label=["園區1","園區2","園區3","園區4","園區5"] 13 14 # =========================帶誤差棒的柱狀圖============================== 15 plt.bar(x, # X軸上的刻度 16 y, # 芒果的收割量 17 color="c", # 柱狀圖的顏色 18 width=0.6, # 柱狀圖的寬度 19 align="center", # 柱狀圖的樣式 20 yerr=std_err, # 柱狀圖當中帶誤差棒的設置 21 error_kw=error_attri, # 誤差棒的屬性設置,如顏色粗細等 22 tick_label=tick_label) # 將x軸上的刻度進行替換 23 plt.xlabel("芒果種植區") 24 plt.ylabel("收割量") 25 plt.title("不同芒果種植區的單次收割量") 26 plt.grid(True,axis="y",ls=":",color="gray",alpha=0.4) 27 plt.show()
22、帶誤差棒的條形圖
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 # 顯示中文標識 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] # 設置字體為SimHei 6 matplotlib.rcParams["axes.unicode_minus"] = False # 放棄使用unicode_minus 7 8 x = np.arange(5) 9 y = [1200,2400,1800,2200,1600] 10 std_err = [150,100,180,130,80] 11 12 bar_height = 0.6 13 colors = ["r","g","b","c","m"] 14 15 plt.barh(x, 16 y, 17 height=bar_height, 18 color=colors, 19 align="center", 20 xerr=std_err, 21 tick_label=["家庭","小說","心理","科技","兒童"]) 22 plt.xlabel("訂購數量") 23 plt.ylabel("圖書種類") 24 plt.title("大型圖書展銷會的不同圖書種類的采購情況") 25 plt.grid(True,axis="x",ls=":",color="r",alpha=0.4) 26 plt.xlim(0,2600) 27 plt.show()
23、帶誤差棒的多數據並列數據柱狀圖
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 # 顯示中文標識 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] # 設置字體為SimHei 6 matplotlib.rcParams["axes.unicode_minus"] = False # 放棄使用unicode_minus 7 8 x = np.arange(5) # x 軸刻度 9 y1 = [100,68,79,91,82] # 芒果收割量 10 y2 = [120,75,70,78,85] 11 std_err1 = [7,2,6,10,5] # 每個園區的誤差 12 std_err2 = [5,1,4,8,9] 13 error_attri = dict(elinewidth=2,ecolor="black",capsize=3) # 誤差棒的屬性設置 14 tick_label=["園區1","園區2","園區3","園區4","園區5"] 15 16 # =========================帶誤差棒的多數據並列數據柱狀圖============================== 17 plt.bar(x, # X軸上的刻度 18 y1, # 芒果的收割量 19 color="c", # 柱狀圖的顏色 20 width=0.4, # 柱狀圖的寬度 21 align="center", # 柱狀圖的樣式 22 yerr=std_err1, # 柱狀圖當中帶誤差棒的設置 23 error_kw=error_attri, # 誤差棒的屬性設置,如顏色粗細等 24 label="2010") # 2010年的數據 25 plt.bar(x+0.4, # X軸上的刻度 26 y2, # 芒果的收割量 27 color="m", # 柱狀圖的顏色 28 width=0.4, # 柱狀圖的寬度 29 align="center", # 柱狀圖的樣式 30 yerr=std_err2, # 柱狀圖當中帶誤差棒的設置 31 error_kw=error_attri, # 誤差棒的屬性設置,如顏色粗細等 32 label="2013") # 2013年的數據 33 34 plt.xlabel("芒果種植區") 35 plt.ylabel("收割量") 36 plt.xticks(x+0.4/2,tick_label) 37 plt.title("不同芒果種植區的單次收割量") 38 plt.grid(True,axis="y",ls=":",color="gray",alpha=0.4) 39 plt.legend() 40 plt.show()
24、帶誤差棒的堆疊柱狀圖
1 import matplotlib 2 import matplotlib.pyplot as plt 3 import numpy as np 4 # 顯示中文標識 5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"] # 設置字體為SimHei 6 matplotlib.rcParams["axes.unicode_minus"] = False # 放棄使用unicode_minus 7 8 x = np.arange(5) 9 y1 = [1200,2400,1800,2200,1600] 10 y2 = [1050,2100,1300,1600,1340] 11 std_err1 = [150,100,180,130,80] 12 std_err2 = [120,110,170,150,120] 13 bar_width = 0.6 14 tick_label=["家庭","小說","心理","科技","兒童"] 15 error_attri = dict(elinewidth=2,ecolor="black",capsize=0) # 誤差棒的屬性設置 16 17 # ============================帶誤差棒的堆疊柱狀圖============================== 18 plt.bar(x, # X軸刻度 19 y1, # 地區1的數據 20 width=bar_width, # 柱狀圖寬度 21 color="c", # 柱狀圖顏色 22 align="center", # 柱狀圖樣式 23 yerr=std_err1, # 地區1的誤差 24 label="地區1", # 標簽 25 error_kw=error_attri) # 誤差棒的屬性,如顏色,粗細 26 plt.bar(x, 27 y2, 28 width=bar_width, 29 bottom=y1, # 在地區1的柱狀圖的基礎上繼續畫柱狀圖 30 color="m", 31 align="center", 32 yerr=std_err2, 33 label="地區2", 34 error_kw=error_attri) 35 plt.xlabel("圖書種類") 36 plt.ylabel("訂購數量") 37 plt.title("大型圖書展銷會的不同圖書種類的采購情況") 38 plt.grid(True,axis="x",ls=":",color="r",alpha=0.4) 39 plt.xticks(x,tick_label) 40 plt.legend() 41 plt.show()