python 用 matplotlib 制作條形圖參數詳解 plt.barh()


1、加載庫

import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt

2、逐步添加 barh() 參數,繪制條形圖

def title_table(ax): ax.set_title(label=f'No.{i+1}', loc='center', pad=None, fontdict={'color': 'b'} ) ax.table(loc='upper right',    # 表格在圖表區的位置
 colLabels=[f'{i+2} args'],    # 表格每列的列名稱
          colColours=['g'],    # 表格每列列名稱所在單元格的填充顏色
          colLoc='left',    # 表格中每列列名稱的對齊位置
          colWidths=[0.15],    # 表格每列的寬度 
          cellText=args,    # 表格中的數值, 每行數據的列表的列表
          cellColours=[['cornsilk']]*len(args),    # 表格中數據所在單元格的填充顏色
          cellLoc='left',    # 表格中數據的對齊位置
          fontsize=8) # 定義數據
x  = [1, 2, 3, 4, 5] y = [6, 10, 4, 5, 1] labels = list('abcde'.upper()) # 配置字體,顯示中文
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 配置坐標軸刻度值模式,顯示負號
mpl.rcParams['axes.unicode_minus'] = True # 設置子區布局和圖表區屬性
fig, axes = plt.subplots(nrows=3,    # 子區行數
                         ncols=3,    # 子區列數
                         figsize=(18, 14),    # 圖表區的大小
                         facecolor='cornsilk',    # 圖表區的背景色
 ) # 將二維子區數組扁平化
axes = axes.ravel()    # 返回子區坐標系的一維視圖


# 選擇子區 1
i = 0 ax = axes[i] ## 設置子區背景色
ax.set_facecolor('oldlace')    # 淺米色,老白色

## 在第 1 子區中繪制條形圖
ax.barh(y=x,    # 條形對應的 y 軸坐標
          width=y,    # 條形的長度
 ) args = [[e] for e in ['y', 'width']] ## 向圖表子區添加標題和數據表
title_table(ax) # 選擇子區 2
i = 1 ax = axes[i] ## 設置子區背景色
ax.set_facecolor('lemonchiffon')    # 檸檬綢色

## 在第 2 子區中繪制條形圖
ax.barh(y=x,    # 條形對應的 y 軸坐標
          width=y,    # 條形的長度
          height=0.4,    # 條形的寬度
 ) args = [[e] for e in ['y', 'width', 'height']] ## 向圖表子區添加標題和數據表
title_table(ax) # 選擇子區 3
i = 2 ax = axes[i] ## 設置子區背景色
ax.set_facecolor('moccasin')    # 鹿皮色

## 在第 3 子區中繪制條形圖
ax.barh(y=x,    # 條形對應的 y 軸坐標
          width=y,    # 條形的長度
          height=0.7,    # 條形的寬度
          align='edge',    # 條形與 y 軸刻度線對齊的位置
 ) args = [[e] for e in ['y', 'width', 'heigth', 'align']] ## 向圖表子區添加標題和數據表
title_table(ax) # 選擇子區 4
i = 3 ax = axes[i] ## 設置子區背景色
ax.set_facecolor('palegoldenrod')    # 淡菊黃色

## 在第 4 子區中繪制條形圖
ax.barh(y=x,    # 條形對應的 y 軸坐標
          width=y,    # 條形的長度
          height=0.7,    # 條形的寬度
          align='edge',    # 條形與 y 軸刻度線對齊的位置
          color='darkgrey'    # 條形的填充顏色
 ) args = [[e] for e in ['y', 'width', 'heigth', 'align', 'color']] ## 向圖表子區添加標題和數據表
title_table(ax) # 選擇子區 5
i = 4 ax = axes[i] ## 設置子區背景色
ax.set_facecolor('orange')    # 橘黃色

## 設置子區背景色
ax.set_facecolor('palegoldenrod')    # 淡菊黃色

## 在第 5 子區中繪制條形圖
ax.barh(y=x,    # 條形對應的 y 軸坐標
          width=y,    # 條形的長度
          height=0.7,    # 條形的寬度
          align='edge',    # 條形與 y 軸刻度線對齊的位置
          color='darkgrey',    # 條形的填充顏色
          alpha=0.4,    # 條形填充顏色的透明度
 ) args = [[e] for e in ['y', 'width', 'heigth', 'align', 'color', 'alpha']] ## 向圖表子區添加標題和數據表
title_table(ax) # 選擇子區 6
i = 5 ax = axes[i] ## 設置子區背景色
ax.set_facecolor('gold')    # 金黃色

## 在第 6 子區中繪制條形圖
ax.barh(y=x,    # 條形對應的 y 軸坐標
          width=y,    # 條形的長度
          height=0.7,    # 條形的寬度
          align='edge',    # 條形與 y 軸刻度線對齊的位置
          color='khaki',    # 條形的填充顏色
          alpha=1,    # 條形填充顏色的透明度
          left=0.7,    # 條形左側邊線對應的 x 軸坐標
 ) args = [[e] for e in ['y', 'width', 'heigth', 'align', 'color', 'alpha', 'left']] ## 向圖表子區添加標題和數據表
title_table(ax) ## 設置刻度范圍
ax.set_xlim(0, 11) # 選擇子區 7
i = 6 ax = axes[i] ## 設置子區背景色
ax.set_facecolor('darkgoldenrod')    # 暗金黃色,深菊黃

## 在第 7 子區中繪制條形圖
ax.barh(y=x,    # 條形對應的 y 軸坐標
          width=y,    # 條形的長度
          height=0.7,    # 條形的寬度
          align='edge',    # 條形與 y 軸刻度線對齊的位置
          color='khaki',    # 條形的填充顏色
          alpha=1,    # 條形填充顏色的透明度
          left=0.2,    # 條形左側邊線對應的 x 軸坐標
          edgecolor='g'    # 條形的邊框顏色
 ) args = [[e] for e in ['y', 'width', 'heigth', 'align', 'color', 'alpha', 'left', 'edgecolor']] ## 向圖表子區添加標題和數據表
title_table(ax) ## 設置刻度范圍
ax.set_xlim(0, 11) # 選擇子區 8
i = 7 ax = axes[i] ## 設置子區背景色
ax.set_facecolor('goldenrod')    # 菊花黃,金麒麟色

## 在第 8 子區中繪制條形圖
ax.barh(y=x,    # 條形對應的 y 軸坐標
          width=y,    # 條形的長度
          height=0.7,    # 條形的寬度
          align='edge',    # 條形與 y 軸刻度線對齊的位置
          color='khaki',    # 條形的填充顏色
          alpha=1,    # 條形填充顏色的透明度
          left=0.2,    # 條形左側邊線對應的 x 軸坐標
          edgecolor='g',    # 條形的邊框顏色
          linewidth=2,    # 條形邊框線的寬度
 ) args = [[e] for e in ['y', 'width', 'heigth', 'align', 'color', 'alpha', 'left', 'edgecolor', 'linewidht']] ## 向圖表子區添加標題和數據表
title_table(ax) ## 設置刻度范圍
ax.set_xlim(0, 11) # 選擇子區 9
i = 8 ax = axes[i] ## 設置子區背景色
ax.set_facecolor('lightgoldenrodyellow')    # 淺金黃色


## 在第 9 子區中繪制條形圖
ax.barh(y=x,    # 條形對應的 y 軸坐標
          width=y,    # 條形的長度
          height=0.7,    # 條形的寬度
          align='edge',    # 條形與 y 軸刻度線對齊的位置
          color='khaki',    # 條形的填充顏色
          alpha=1,    # 條形填充顏色的透明度
          left=0.2,    # 條形左側邊線對應的 x 軸坐標
          edgecolor='g',    # 條形的邊框顏色
          linewidth=2,    # 條形邊框線的寬度
          tick_label=labels    # 條形的標簽名稱
 ) args = [[e] for e in ['y', 'width', 'heigth', 'align', 'color', 'alpha', 'left', 'edgecolor', 'linewidht', 'tick_label']] ## 向圖表子區添加標題和數據表
title_table(ax) ## 設置刻度范圍
ax.set_xlim(0, 11);

圖表

 


免責聲明!

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



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