Matplotlib(三)- 圖表輔助元素

文章目錄

  • 一、圖表輔助元素簡介
  • 二、坐標軸的標簽、刻度范圍和刻度標簽
    • 1. 坐標軸標簽
      • 1.1 x軸標簽
      • 1.2 y軸標簽
      • 1.3 示例:繪制天氣氣溫折線圖
    • 2. 刻度范圍和刻度標簽
      • 2.1 刻度范圍
        • 2.1.1 x軸刻度范圍
        • 2.1.2 y軸刻度范圍
      • 2.2 刻度標簽
        • 2.2.1 x軸刻度標簽
        • 2.2.2 y軸刻度標簽
      • 2.3 示例:繪制天氣氣溫折線圖
  • 三、標題和圖例
    • 1. 標題(Title)
    • 2. 圖例(Legend)
    • 3 示例:繪制天氣氣溫折線圖
    • 4. 示例:繪制賬單餅圖
  • 四、網格
    • 1. 網格
    • 2. 示例:繪制天氣氣溫折線圖
  • 五、參考線和參考區域
    • 1. 參考線
      • 1.1 水平參考線
      • 1.2 垂直參考線
      • 1.3 示例:繪制天氣氣溫折線圖
    • 2. 參考區域
      • 2.1 水平參考區域
      • 2.2 垂直參考區域
      • 2.3 示例:繪制天氣氣溫折線圖
  • 六、注釋文本
    • 1. 指向型注釋文本
    • 2. 無指向型注釋文本
    • 3. 示例:繪制天氣氣溫折線圖
  • 七、表格
    • 1. 表格
    • 2. 示例:繪制國內生產總值柱形圖
  • 八、數據及代碼下載地址


一、圖表輔助元素簡介

在數據可視化中,除了核心的圖表內容(如折線、柱形、散點等),輔助元素是提升圖表可讀性、信息完整性和美觀度的關鍵組成部分。它們能夠幫助讀者快速理解圖表的主題、數據含義、坐標軸范圍以及數據間的關聯,是專業圖表不可或缺的一部分。

常見的圖表輔助元素包括以下幾類:

輔助元素類別作用描述典型使用場景示例代碼(Matplotlib)
標題(Title)概括圖表核心內容,讓讀者快速了解數據主題所有圖表均需,通常位于圖表上方plt.title("2021-2022年發電量對比", fontsize=12)
坐標軸標簽明確坐標軸代表的數據含義及單位,避免維度誤解除極簡圖表外均需,尤其坐標軸無默認含義時plt.xlabel("年份")
plt.ylabel("發電量(億千瓦時)")
圖例(Legend)區分多數據系列(如多條折線、多組柱形)的含義多數據系列圖表必須添加,位置需避免遮擋核心數據plt.legend(labels=["用戶1", "用戶2"], loc="upper right")
網格線(Grid)通過參考線幫助讀者精準讀取數據值、比較差異需精確讀取數據的圖表(折線圖、散點圖等),避免過密導致雜亂plt.grid(linestyle="--", alpha=0.7)(虛線樣式,透明度0.7)
刻度與刻度標簽刻度為坐標軸標記點,刻度標簽為對應數值,用于量化數據范圍所有帶坐標軸的圖表,可自定義間隔(如時間序列按季度顯示)plt.xticks(ticks=[1,2,3,4], labels=["Q1", "Q2", "Q3", "Q4"])
注釋(Annotation)對關鍵數據點、異常值或特殊趨勢補充說明,增強信息深度數據存在需強調的特殊信息時(如政策節點、峰值),避免過度注釋plt.annotate("政策調整點", xy=(5, 120), xytext=(6, 130), arrowprops=dict(arrowstyle="->"))
數據標簽直接在圖表元素(柱形、扇形等)上標注具體數值,避免二次推測數據量較少的圖表(餅圖、簡單柱形圖),數據過多易重疊餅圖百分比標簽:plt.pie(values, autopct="%1.1f%%")
背景與邊框調整背景色、隱藏冗余邊框(如上、右邊框),減少視覺干擾,突出圖表內容所有圖表均可優化,適合簡潔風格可視化plt.gca().spines["top"].set_visible(False)(隱藏上邊框)

二、坐標軸的標簽、刻度范圍和刻度標簽

1. 坐標軸標簽

在 Matplotlib 中,可以通過 plt.xlabel()plt.ylabel() 函數分別為 x軸y軸 添加標簽,以增強圖表的可讀性和表達力。

1.1 x軸標簽

使用 plt.xlabel() 函數可以為 x軸 添加標簽。

參數名描述
xlabel要顯示的標簽文本(字符串)
fontdict字體字典,用于設置字體大小、顏色、樣式等
labelpad標簽與坐標軸之間的距離(像素)
loc標簽的位置,可選 'center''left''right'
**kwargs其他文本屬性,如 colorfontsizerotation

1.2 y軸標簽

使用 plt.ylabel() 函數可以為 y軸 添加標簽。

參數名描述
ylabel要顯示的標簽文本(字符串)
fontdict字體字典,用于設置字體大小、顏色、樣式等
labelpad標簽與坐標軸之間的距離(像素)
loc標簽的位置,可選 'center''top''bottom'
**kwargs其他文本屬性,如 colorfontsizerotation

1.3 示例:繪制天氣氣溫折線圖

數據如下圖所示,需要根據這個數據繪制氣溫折線圖,并設置x軸和y軸標簽。

在這里插入圖片描述

實現代碼如下所示:

import matplotlib.pyplot as plt
import pandas as pd# 設置中文字體為 SimHei(黑體),確保中文標簽可以正常顯示(可選)
plt.rcParams['font.sans-serif'] = ['SimHei']# 解決負號 '-' 顯示為方塊的問題,保證負號正常顯示
plt.rcParams['axes.unicode_minus'] = False# 請將此處替換為你的CSV文件路徑
csv_file_path = './data/氣溫.csv'
# 讀取CSV文件
df = pd.read_csv(csv_file_path)# 處理日期格式
df['日期'] = pd.to_datetime(df['日期'])# 提取溫度數值(去除℃符號并轉換為整數)
df['最高氣溫'] = df['最高氣溫'].str.replace('℃', '').astype(int)
df['最低氣溫'] = df['最低氣溫'].str.replace('℃', '').astype(int)# 繪制折線圖
# plt.plot(df['日期'], df['最高氣溫'])
# plt.plot(df['日期'], df['最低氣溫'])
plt.plot('日期', '最高氣溫', data=df)
plt.plot('日期', '最低氣溫', data=df)# 設置x軸日期格式,自動旋轉日期標簽
plt.gcf().autofmt_xdate()# 設置 x 軸的標簽(xlabel)
plt.xlabel(xlabel='日 期',  # 標簽內容,顯示為“日 期”fontdict={'fontsize': 12, 'color': '#000', 'fontweight': 'bold'},  # 設置字體樣式:字體大小12,顏色為黑色,加粗labelpad=10,  # 標簽與坐標軸之間的距離(以像素為單位)loc='center'  # 標簽在 x 軸上的對齊方式,'center' 表示居中對齊
)# 設置 y 軸的標簽(ylabel)
plt.ylabel(ylabel='氣 溫',  # 標簽內容,顯示為“氣 溫”fontdict={'fontsize': 12, 'color': '#000', 'color': '#000', 'fontweight': 'bold'},  # 設置字體樣式:字體大小12,顏色為黑色,加粗labelpad=5,  # 標簽與坐標軸之間的距離(以像素為單位)loc='center'  # 標簽在 y 軸上的對齊方式,'center' 表示居中對齊
)# 顯示圖形
plt.show()

繪制的圖形如下圖所示:

在這里插入圖片描述

2. 刻度范圍和刻度標簽

2.1 刻度范圍

2.1.1 x軸刻度范圍

使用 plt.xlim() 函數可以設置或獲取 x軸的顯示范圍

參數名描述示例
*args可以是一個元組 (xmin, xmax),也可以是兩個參數 xmin, xmaxplt.xlim((0, 5))plt.xlim(0, 5)
emit是否通知圖形更新(一般無需修改)默認為 True
auto是否自動調整刻度范圍plt.xlim(auto=True)
xmin設置x軸的最小值plt.xlim(xmin=1)
xmax設置x軸的最大值plt.xlim(xmax=10)
2.1.2 y軸刻度范圍

使用 plt.ylim() 函數可以設置或獲取 y軸的顯示范圍

參數名描述示例
*args可以是一個元組 (ymin, ymax),也可以是兩個參數 ymin, ymaxplt.ylim((0, 6))plt.ylim(0, 6)
emit是否通知圖形更新默認為 True
auto是否自動調整刻度范圍plt.ylim(auto=True)
ymin設置y軸的最小值plt.ylim(ymin=1)
ymax設置y軸的最大值plt.ylim(ymax=10)

2.2 刻度標簽

2.2.1 x軸刻度標簽

使用 plt.xticks() 函數可以設置 x軸刻度的位置和對應的標簽

參數名描述示例
ticks指定刻度位置的列表ticks=[0, 1, 2]
labels對應每個刻度位置的標簽列表labels=['A', 'B', 'C']
rotation標簽旋轉角度rotation=45
fontsize標簽字體大小fontsize=12
color標簽顏色color='red'
2.2.2 y軸刻度標簽

使用 plt.yticks() 函數可以設置 y軸刻度的位置和對應的標簽

參數名描述示例
ticks指定刻度位置的列表ticks=[0, 2, 4]
labels對應每個刻度位置的標簽列表labels=['低', '中', '高']
rotation標簽旋轉角度rotation=90
fontsize標簽字體大小fontsize=12
color標簽顏色color='red'

2.3 示例:繪制天氣氣溫折線圖

數據如下圖所示,需要根據這個數據繪制氣溫折線圖,并設置x軸和y軸的刻度范圍和刻度標簽。

在這里插入圖片描述

實現代碼如下所示:

from datetime import datetimeimport matplotlib.pyplot as plt
import pandas as pd# 設置中文字體為 SimHei(黑體),確保中文標簽可以正常顯示(可選)
plt.rcParams['font.sans-serif'] = ['SimHei']# 解決負號 '-' 顯示為方塊的問題,保證負號正常顯示
plt.rcParams['axes.unicode_minus'] = False# 請將此處替換為你的CSV文件路徑
csv_file_path = './data/氣溫.csv'
# 讀取CSV文件
df = pd.read_csv(csv_file_path)# 處理日期格式
df['日期'] = pd.to_datetime(df['日期'])# 提取溫度數值(去除℃符號并轉換為整數)
df['最高氣溫'] = df['最高氣溫'].str.replace('℃', '').astype(int)
df['最低氣溫'] = df['最低氣溫'].str.replace('℃', '').astype(int)# 繪制折線圖
# plt.plot(df['日期'], df['最高氣溫'])
# plt.plot(df['日期'], df['最低氣溫'])
plt.plot('日期', '最高氣溫', data=df)
plt.plot('日期', '最低氣溫', data=df)# 設置x軸日期格式,自動旋轉日期標簽
plt.gcf().autofmt_xdate()# 設置 x 軸的標簽(xlabel)
plt.xlabel(xlabel='日 期',  # 標簽內容,顯示為“日 期”fontdict={'fontsize': 12, 'color': '#000', 'fontweight': 'bold'},  # 設置字體樣式:字體大小12,顏色為黑色,加粗labelpad=10,  # 標簽與坐標軸之間的距離(以像素為單位)loc='center'  # 標簽在 x 軸上的對齊方式,'center' 表示居中對齊
)# 設置 y 軸的標簽(ylabel)
plt.ylabel(ylabel='氣 溫',  # 標簽內容,顯示為“氣 溫”fontdict={'fontsize': 12, 'color': '#000', 'color': '#000', 'fontweight': 'bold'},  # 設置字體樣式:字體大小12,顏色為黑色,加粗labelpad=5,  # 標簽與坐標軸之間的距離(以像素為單位)loc='center'  # 標簽在 y 軸上的對齊方式,'center' 表示居中對齊
)# 設置 x 軸(時間)的顯示范圍
# 從 2025年7月8日 開始,到 2025年7月25日 結束
start_time = datetime(2025, 7, 8)
end_time = datetime(2025, 7, 25)# 設置 x 軸的范圍(時間范圍)
plt.xlim((start_time, end_time))# 設置 y 軸的數值范圍,從 13 到 26
plt.ylim(ymin=13, ymax=26)# 設置 x 軸的刻度位置和刻度標簽
# rotation:刻度標簽旋轉角度(30度)
# color:刻度標簽顏色(藍色系)
# fontsize:字體大小
# ticks:指定刻度的位置(字符串日期)
# labels:對應每個刻度位置的顯示標簽(中文格式)
plt.xticks(rotation=30,color='#09f',fontsize=10,ticks=['2025-07-09', '2025-07-10', '2025-07-11', '2025-07-12', '2025-07-13','2025-07-14', '2025-07-15', '2025-07-16', '2025-07-17', '2025-07-18','2025-07-19', '2025-07-20', '2025-07-21', '2025-07-22', '2025-07-23','2025-07-24', '2025-07-25'],labels=['9日', '10日', '11日', '12日', '13日', '14日', '15日', '16日','17日', '18日', '19日', '20日', '21日', '22日', '23日', '24日', '25日'])# 設置 y 軸的刻度位置和刻度標簽
# rotation:標簽旋轉角度
# color:標簽顏色
# fontsize:字體大小
# ticks:刻度位置
# labels:顯示的標簽(添加了溫度單位 ℃)
plt.yticks(rotation=30,color='#09f',fontsize=10,ticks=[13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26],labels=['13℃', '14℃', '15℃', '16℃', '17℃', '18℃', '19℃', '20℃','21℃', '22℃', '23℃', '24℃', '25℃', '26℃'])# 顯示圖形
plt.show()

繪制的圖形如下圖所示:

在這里插入圖片描述


三、標題和圖例

在 Matplotlib 中,標題(Title)圖例(Legend) 是圖表中非常重要的組成部分,它們可以增強圖表的可讀性和表達能力,幫助讀者更好地理解圖表內容。

1. 標題(Title)

使用 plt.title() 函數可以為當前圖表添加一個標題。

參數名描述示例
label標題文本內容'氣溫變化趨勢圖'
fontdict字體字典,用于設置字體大小、顏色、樣式等{'fontsize': 14, 'color': 'red'}
loc標題位置,可選 'center''left''right''center'
pad標題與圖表頂部之間的間距(像素)20
**kwargs其他文本屬性,如 color, fontsize, rotationcolor='blue', fontsize=12

2. 圖例(Legend)

使用 plt.legend() 函數可以為圖表添加圖例,用于說明每條曲線或每個圖形對象的含義。

參數名描述示例
labels圖例標簽列表['曲線A', '曲線B']
loc圖例位置,常用 'upper right', 'lower left', 'center''upper right'
bbox_to_anchor圖例錨點位置(用于精確定位)(1.05, 1)
ncol圖例列數2
title圖例標題'圖例說明'
fontsize圖例字體大小10
frameon是否顯示圖例邊框False
shadow是否添加陰影True
markerscale圖例中點標記的大小縮放比例1.5

圖例位置編碼和字符串說明:

位置編碼字符串描述位置描述
0'best'自動選擇最佳位置(避免與其他元素重疊)
1'upper right'右上角
2'upper left'左上角
3'lower left'左下角
4'lower right'右下角
5'right'右側中心
6'center left'中心左側
7'center right'中心右側
8'lower center'下方中心
9'upper center'上方中心
10'center'正中間

3 示例:繪制天氣氣溫折線圖

數據如下圖所示,需要根據這個數據繪制氣溫折線圖,并設置x軸和y軸的刻度范圍和刻度標簽,以及標題和圖例。

在這里插入圖片描述

實現代碼如下所示:

from datetime import datetimeimport matplotlib.pyplot as plt
import pandas as pd# 設置中文字體為 SimHei(黑體),確保中文標簽可以正常顯示(可選)
plt.rcParams['font.sans-serif'] = ['SimHei']# 解決負號 '-' 顯示為方塊的問題,保證負號正常顯示
plt.rcParams['axes.unicode_minus'] = False# 請將此處替換為你的CSV文件路徑
csv_file_path = './data/氣溫.csv'
# 讀取CSV文件
df = pd.read_csv(csv_file_path)# 處理日期格式
df['日期'] = pd.to_datetime(df['日期'])# 提取溫度數值(去除℃符號并轉換為整數)
df['最高氣溫'] = df['最高氣溫'].str.replace('℃', '').astype(int)
df['最低氣溫'] = df['最低氣溫'].str.replace('℃', '').astype(int)# 繪制折線圖
# plt.plot(df['日期'], df['最高氣溫'])
# plt.plot(df['日期'], df['最低氣溫'])
plt.plot('日期', '最高氣溫', data=df)
plt.plot('日期', '最低氣溫', data=df)# 設置x軸日期格式,自動旋轉日期標簽
plt.gcf().autofmt_xdate()# 設置 x 軸的標簽(xlabel)
plt.xlabel(xlabel='日 期',  # 標簽內容,顯示為“日 期”fontdict={'fontsize': 12, 'color': '#000', 'fontweight': 'bold'},  # 設置字體樣式:字體大小12,顏色為黑色,加粗labelpad=10,  # 標簽與坐標軸之間的距離(以像素為單位)loc='center'  # 標簽在 x 軸上的對齊方式,'center' 表示居中對齊
)# 設置 y 軸的標簽(ylabel)
plt.ylabel(ylabel='氣 溫',  # 標簽內容,顯示為“氣 溫”fontdict={'fontsize': 12, 'color': '#000', 'color': '#000', 'fontweight': 'bold'},  # 設置字體樣式:字體大小12,顏色為黑色,加粗labelpad=5,  # 標簽與坐標軸之間的距離(以像素為單位)loc='center'  # 標簽在 y 軸上的對齊方式,'center' 表示居中對齊
)# 設置 x 軸(時間)的顯示范圍
# 從 2025年7月8日 開始,到 2025年7月25日 結束
start_time = datetime(2025, 7, 8)
end_time = datetime(2025, 7, 25)# 設置 x 軸的范圍(時間范圍)
plt.xlim((start_time, end_time))# 設置 y 軸的數值范圍,從 13 到 26
plt.ylim(ymin=13, ymax=26)# 設置 x 軸的刻度位置和刻度標簽
# rotation:刻度標簽旋轉角度(30度)
# color:刻度標簽顏色(藍色系)
# fontsize:字體大小
# ticks:指定刻度的位置(字符串日期)
# labels:對應每個刻度位置的顯示標簽(中文格式)
plt.xticks(rotation=30,color='#09f',fontsize=10,ticks=['2025-07-09', '2025-07-10', '2025-07-11', '2025-07-12', '2025-07-13','2025-07-14', '2025-07-15', '2025-07-16', '2025-07-17', '2025-07-18','2025-07-19', '2025-07-20', '2025-07-21', '2025-07-22', '2025-07-23','2025-07-24', '2025-07-25'],labels=['9日', '10日', '11日', '12日', '13日', '14日', '15日', '16日','17日', '18日', '19日', '20日', '21日', '22日', '23日', '24日', '25日'])# 設置 y 軸的刻度位置和刻度標簽
# rotation:標簽旋轉角度
# color:標簽顏色
# fontsize:字體大小
# ticks:刻度位置
# labels:顯示的標簽(添加了溫度單位 ℃)
plt.yticks(rotation=30,color='#09f',fontsize=10,ticks=[13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26],labels=['13℃', '14℃', '15℃', '16℃', '17℃', '18℃', '19℃', '20℃','21℃', '22℃', '23℃', '24℃', '25℃', '26℃'])# 設置圖表標題
plt.title(label='2025年7月8日至2025年7月25日的氣溫變化',  # 標題內容fontdict={'fontsize': 14, 'color': '#09f'},  # 字體樣式:大小14,顏色為藍色(#09f)loc='center',  # 標題對齊方式:居中pad=10,  # 標題與圖表頂部的距離(以像素為單位)fontweight='bold',  # 字體加粗(此參數可被 fontdict 覆蓋)color='red',  # 標題文字顏色(若設置,會覆蓋 fontdict 中的顏色)backgroundcolor='lightblue'  # 設置標題背景顏色為淺藍色
)# 設置圖例(legend)
plt.legend(labels=['最高氣溫', '最低氣溫'],  # 圖例中顯示的標簽名稱loc='lower left',  # 圖例放置的位置:左下角ncol=1,  # 圖例分為1列(縱向排列)title='天氣溫度',  # 圖例的標題fontsize=10,  # 圖例文字的字體大小frameon=True,  # 是否顯示圖例邊框edgecolor='blue',  # 圖例邊框顏色facecolor='lightblue',  # 圖例背景顏色shadow=True,  # 是否添加陰影效果fancybox=True  # 是否使用圓角邊框(False 為直角)
)# 顯示圖形
plt.show()

繪制的圖形如下圖所示:

在這里插入圖片描述

4. 示例:繪制賬單餅圖

數據如下圖所示,需要根據這個數據繪制賬單餅圖,并添加圖例。

在這里插入圖片描述

實現代碼如下圖所示:

# 導入matplotlib.pyplot模塊,用于繪圖功能。
import matplotlib.pyplot as plt# 導入pandas模塊,并使用pd作為別名。Pandas是一個強大的數據處理和分析庫。
import pandas as pd# 設置matplotlib的中文字體為SimHei(黑體),以確保中文標簽可以正常顯示。
plt.rcParams['font.sans-serif'] = ['SimHei']# 解決負號'-'顯示為方塊的問題,通過設置'axes.unicode_minus'為False來實現。
plt.rcParams['axes.unicode_minus'] = False# 定義包含CSV文件路徑的變量。這里假設賬單數據存儲在一個名為'賬單.csv'的文件中。
csv_file_path = './data/賬單.csv'# 使用pandas的read_csv函數讀取CSV文件中的數據,并將其存儲在一個DataFrame對象中。
df = pd.read_csv(csv_file_path)# 從DataFrame中提取'金額'列的數據,用于表示餅圖各個部分的大小或貢獻度。
x = df['金額']# 從DataFrame中提取'支出分類'列的數據,用作餅圖各部分的標簽,以便了解每個部分代表什么。
labels = df['支出分類']# 使用plt.pie()函數繪制餅圖:
# 參數x指定數據列表,決定了餅圖各個扇區的大小;
# labels參數指定與x列表對應的數據標簽,幫助識別每個扇區所代表的類別;
# autopct參數設置為'%.1f%%',用于在餅圖上顯示百分比數值,保留一位小數。
plt.pie(x=x, labels=labels, autopct='%.1f%%')# 設置圖表標題
plt.title(label='賬單餅圖',  # 標題文本內容color='blue',  # 標題文字顏色為藍色backgroundcolor='lightblue',  # 標題背景顏色為淺藍色pad=0  # 標題與圖表頂部的距離(以像素為單位),這里設置為0,即沒有額外的間距
)# 設置圖例(legend)
plt.legend(labels=labels,  # 圖例中顯示的標簽名稱列表,這里的 `labels` 應該是一個預定義好的列表變量bbox_to_anchor=(1.25, 1.11),  # 圖例框的位置,(x, y) 坐標。相對于圖形邊界或圖形本身的位置取決于使用的布局管理器facecolor='lightblue'  # 圖例背景顏色為淺藍色
)# 調用plt.show()函數顯示圖形結果。這是展示已創建圖表的必要步驟。
plt.show()

繪制的圖形如下圖所示:

在這里插入圖片描述


四、網格

1. 網格

在Matplotlib中,網格(Grid)是用于輔助觀察數據點的位置而添加的背景線。通過使用 plt.grid() 方法,可以輕松地為圖表添加或移除網格線。

以下表格詳細介紹了 plt.grid() 方法的主要參數:

參數名描述可選值/格式示例
visible開啟或關閉網格TrueFalseTrue(開啟網格)
which選擇應用網格的刻度類型'major', 'minor', 'both''both'(同時應用于主次刻度)
axis選擇應用網格的軸方向'x', 'y', 'both''x'(僅應用于X軸)
**kwargs網格屬性設置,如顏色、樣式等例如:color='blue', linestyle='--'color='green', linestyle=':'

2. 示例:繪制天氣氣溫折線圖

數據如下圖所示,需要根據這個數據繪制氣溫折線圖,并設置x軸和y軸的刻度范圍和刻度標簽、標題、圖例和網格線。

在這里插入圖片描述

實現代碼如下所示:

from datetime import datetimeimport matplotlib.pyplot as plt
import pandas as pd# 設置中文字體為 SimHei(黑體),確保中文標簽可以正常顯示(可選)
plt.rcParams['font.sans-serif'] = ['SimHei']# 解決負號 '-' 顯示為方塊的問題,保證負號正常顯示
plt.rcParams['axes.unicode_minus'] = False# 請將此處替換為你的CSV文件路徑
csv_file_path = './data/氣溫.csv'
# 讀取CSV文件
df = pd.read_csv(csv_file_path)# 處理日期格式
df['日期'] = pd.to_datetime(df['日期'])# 提取溫度數值(去除℃符號并轉換為整數)
df['最高氣溫'] = df['最高氣溫'].str.replace('℃', '').astype(int)
df['最低氣溫'] = df['最低氣溫'].str.replace('℃', '').astype(int)# 繪制折線圖
# plt.plot(df['日期'], df['最高氣溫'])
# plt.plot(df['日期'], df['最低氣溫'])
plt.plot('日期', '最高氣溫', data=df)
plt.plot('日期', '最低氣溫', data=df)# 設置x軸日期格式,自動旋轉日期標簽
plt.gcf().autofmt_xdate()# 設置 x 軸的標簽(xlabel)
plt.xlabel(xlabel='日 期',  # 標簽內容,顯示為“日 期”fontdict={'fontsize': 12, 'color': '#000', 'fontweight': 'bold'},  # 設置字體樣式:字體大小12,顏色為黑色,加粗labelpad=10,  # 標簽與坐標軸之間的距離(以像素為單位)loc='center'  # 標簽在 x 軸上的對齊方式,'center' 表示居中對齊
)# 設置 y 軸的標簽(ylabel)
plt.ylabel(ylabel='氣 溫',  # 標簽內容,顯示為“氣 溫”fontdict={'fontsize': 12, 'color': '#000', 'color': '#000', 'fontweight': 'bold'},  # 設置字體樣式:字體大小12,顏色為黑色,加粗labelpad=5,  # 標簽與坐標軸之間的距離(以像素為單位)loc='center'  # 標簽在 y 軸上的對齊方式,'center' 表示居中對齊
)# 設置 x 軸(時間)的顯示范圍
# 從 2025年7月8日 開始,到 2025年7月25日 結束
start_time = datetime(2025, 7, 8)
end_time = datetime(2025, 7, 25)# 設置 x 軸的范圍(時間范圍)
plt.xlim((start_time, end_time))# 設置 y 軸的數值范圍,從 13 到 26
plt.ylim(ymin=13, ymax=26)# 設置 x 軸的刻度位置和刻度標簽
# rotation:刻度標簽旋轉角度(30度)
# color:刻度標簽顏色(藍色系)
# fontsize:字體大小
# ticks:指定刻度的位置(字符串日期)
# labels:對應每個刻度位置的顯示標簽(中文格式)
plt.xticks(rotation=30,color='#09f',fontsize=10,ticks=['2025-07-09', '2025-07-10', '2025-07-11', '2025-07-12', '2025-07-13','2025-07-14', '2025-07-15', '2025-07-16', '2025-07-17', '2025-07-18','2025-07-19', '2025-07-20', '2025-07-21', '2025-07-22', '2025-07-23','2025-07-24', '2025-07-25'],labels=['9日', '10日', '11日', '12日', '13日', '14日', '15日', '16日','17日', '18日', '19日', '20日', '21日', '22日', '23日', '24日', '25日'])# 設置 y 軸的刻度位置和刻度標簽
# rotation:標簽旋轉角度
# color:標簽顏色
# fontsize:字體大小
# ticks:刻度位置
# labels:顯示的標簽(添加了溫度單位 ℃)
plt.yticks(rotation=30,color='#09f',fontsize=10,ticks=[13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26],labels=['13℃', '14℃', '15℃', '16℃', '17℃', '18℃', '19℃', '20℃','21℃', '22℃', '23℃', '24℃', '25℃', '26℃'])# 設置圖表標題
plt.title(label='2025年7月8日至2025年7月25日的氣溫變化',  # 標題內容fontdict={'fontsize': 14, 'color': '#09f'},  # 字體樣式:大小14,顏色為藍色(#09f)loc='center',  # 標題對齊方式:居中pad=10,  # 標題與圖表頂部的距離(以像素為單位)fontweight='bold',  # 字體加粗(此參數可被 fontdict 覆蓋)color='red',  # 標題文字顏色(若設置,會覆蓋 fontdict 中的顏色)backgroundcolor='lightblue'  # 設置標題背景顏色為淺藍色
)# 設置圖例(legend)
plt.legend(labels=['最高氣溫', '最低氣溫'],  # 圖例中顯示的標簽名稱loc='lower left',  # 圖例放置的位置:左下角ncol=1,  # 圖例分為1列(縱向排列)title='天氣溫度',  # 圖例的標題fontsize=10,  # 圖例文字的字體大小frameon=True,  # 是否顯示圖例邊框edgecolor='blue',  # 圖例邊框顏色facecolor='lightblue',  # 圖例背景顏色shadow=True,  # 是否添加陰影效果fancybox=True  # 是否使用圓角邊框(False 為直角)
)# 設置圖表網格線
plt.grid(visible=True,  # 是否顯示網格線,設置為 True 表示顯示網格線which='both',  # 應用于哪種刻度線('major' 主刻度,'minor' 次刻度,'both' 兩者都應用)axis='both',  # 在哪個軸上顯示網格線('x' x軸,'y' y軸,'both' 兩個軸都顯示)linestyle='--',  # 網格線的樣式,這里是虛線color='lightblue',  # 網格線的顏色,這里設置為淺藍色alpha=0.5,  # 網格線的透明度,范圍是0到1,數值越低越透明linewidth=1,  # 網格線的寬度dashes=(5, 5)  # 虛線的樣式,元組中的第一個數字表示實線部分長度,第二個數字表示間隔長度
)# 顯示圖形
plt.show()

繪制的圖形如下圖所示:

在這里插入圖片描述


五、參考線和參考區域

在數據可視化中,參考線(Reference Lines)參考區域(Reference Areas) 是非常有用的工具,可以突出顯示特定的數據值、閾值或范圍,從而增強圖表的信息傳達能力。

1. 參考線

1.1 水平參考線

使用 plt.axhline() 函數可以在圖表中添加一條水平參考線。這條線會橫跨整個繪圖區域的寬度,并且可以設置其位置、顏色、樣式等屬性。

參數名描述示例
y水平線的 y 軸位置(默認為 0)y=5
xmin線條起始的 x 軸相對位置(0 到 1,左端為 0)xmin=0.2
xmax線條結束的 x 軸相對位置(0 到 1,右端為 1)xmax=0.8
**kwargs其他線條屬性,如 color, linestyle, linewidth, labelcolor='red', linestyle='--', linewidth=2

1.2 垂直參考線

使用 plt.axvline() 函數可以在圖表中添加一條垂直參考線。這條線會縱貫整個繪圖區域的高度。

參數名描述示例
x垂直線的 x 軸位置(默認為 0)x=2.5
ymin線條起始的 y 軸相對位置(0 到 1,底端為 0)ymin=0.2
ymax線條結束的 y 軸相對位置(0 到 1,頂端為 1)ymax=0.8
**kwargs其他線條屬性,如 color, linestyle, linewidth, labelcolor='blue', linestyle=':', linewidth=1.5

1.3 示例:繪制天氣氣溫折線圖

數據如下圖所示,需要根據這個數據繪制氣溫折線圖,并設置x軸和y軸的刻度范圍和刻度標簽、標題、圖例、網格線和參考線。

在這里插入圖片描述

實現代碼如下所示:

from datetime import datetimeimport matplotlib.pyplot as plt
import pandas as pd# 設置中文字體為 SimHei(黑體),確保中文標簽可以正常顯示(可選)
plt.rcParams['font.sans-serif'] = ['SimHei']# 解決負號 '-' 顯示為方塊的問題,保證負號正常顯示
plt.rcParams['axes.unicode_minus'] = False# 請將此處替換為你的CSV文件路徑
csv_file_path = './data/氣溫.csv'
# 讀取CSV文件
df = pd.read_csv(csv_file_path)# 處理日期格式
df['日期'] = pd.to_datetime(df['日期'])# 提取溫度數值(去除℃符號并轉換為整數)
df['最高氣溫'] = df['最高氣溫'].str.replace('℃', '').astype(int)
df['最低氣溫'] = df['最低氣溫'].str.replace('℃', '').astype(int)# 繪制折線圖
# plt.plot(df['日期'], df['最高氣溫'])
# plt.plot(df['日期'], df['最低氣溫'])
plt.plot('日期', '最高氣溫', data=df)
plt.plot('日期', '最低氣溫', data=df)# 設置x軸日期格式,自動旋轉日期標簽
plt.gcf().autofmt_xdate()# 設置 x 軸的標簽(xlabel)
plt.xlabel(xlabel='日 期',  # 標簽內容,顯示為“日 期”fontdict={'fontsize': 12, 'color': '#000', 'fontweight': 'bold'},  # 設置字體樣式:字體大小12,顏色為黑色,加粗labelpad=10,  # 標簽與坐標軸之間的距離(以像素為單位)loc='center'  # 標簽在 x 軸上的對齊方式,'center' 表示居中對齊
)# 設置 y 軸的標簽(ylabel)
plt.ylabel(ylabel='氣 溫',  # 標簽內容,顯示為“氣 溫”fontdict={'fontsize': 12, 'color': '#000', 'color': '#000', 'fontweight': 'bold'},  # 設置字體樣式:字體大小12,顏色為黑色,加粗labelpad=5,  # 標簽與坐標軸之間的距離(以像素為單位)loc='center'  # 標簽在 y 軸上的對齊方式,'center' 表示居中對齊
)# 設置 x 軸(時間)的顯示范圍
# 從 2025年7月8日 開始,到 2025年7月25日 結束
start_time = datetime(2025, 7, 8)
end_time = datetime(2025, 7, 25)# 設置 x 軸的范圍(時間范圍)
plt.xlim((start_time, end_time))# 設置 y 軸的數值范圍,從 13 到 26
plt.ylim(ymin=13, ymax=26)# 設置 x 軸的刻度位置和刻度標簽
# rotation:刻度標簽旋轉角度(30度)
# color:刻度標簽顏色(藍色系)
# fontsize:字體大小
# ticks:指定刻度的位置(字符串日期)
# labels:對應每個刻度位置的顯示標簽(中文格式)
plt.xticks(rotation=30,color='#09f',fontsize=10,ticks=['2025-07-09', '2025-07-10', '2025-07-11', '2025-07-12', '2025-07-13','2025-07-14', '2025-07-15', '2025-07-16', '2025-07-17', '2025-07-18','2025-07-19', '2025-07-20', '2025-07-21', '2025-07-22', '2025-07-23','2025-07-24', '2025-07-25'],labels=['9日', '10日', '11日', '12日', '13日', '14日', '15日', '16日','17日', '18日', '19日', '20日', '21日', '22日', '23日', '24日', '25日'])# 設置 y 軸的刻度位置和刻度標簽
# rotation:標簽旋轉角度
# color:標簽顏色
# fontsize:字體大小
# ticks:刻度位置
# labels:顯示的標簽(添加了溫度單位 ℃)
plt.yticks(rotation=30,color='#09f',fontsize=10,ticks=[13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26],labels=['13℃', '14℃', '15℃', '16℃', '17℃', '18℃', '19℃', '20℃','21℃', '22℃', '23℃', '24℃', '25℃', '26℃'])# 設置圖表標題
plt.title(label='2025年7月8日至2025年7月25日的氣溫變化',  # 標題內容fontdict={'fontsize': 14, 'color': '#09f'},  # 字體樣式:大小14,顏色為藍色(#09f)loc='center',  # 標題對齊方式:居中pad=10,  # 標題與圖表頂部的距離(以像素為單位)fontweight='bold',  # 字體加粗(此參數可被 fontdict 覆蓋)color='red',  # 標題文字顏色(若設置,會覆蓋 fontdict 中的顏色)backgroundcolor='lightblue'  # 設置標題背景顏色為淺藍色
)# 設置圖表網格線
plt.grid(visible=True,  # 是否顯示網格線,設置為 True 表示顯示網格線which='both',  # 應用于哪種刻度線('major' 主刻度,'minor' 次刻度,'both' 兩者都應用)axis='both',  # 在哪個軸上顯示網格線('x' x軸,'y' y軸,'both' 兩個軸都顯示)linestyle='--',  # 網格線的樣式,這里是虛線color='lightblue',  # 網格線的顏色,這里設置為淺藍色alpha=0.5,  # 網格線的透明度,范圍是0到1,數值越低越透明linewidth=1,  # 網格線的寬度dashes=(5, 5)  # 虛線的樣式,元組中的第一個數字表示實線部分長度,第二個數字表示間隔長度
)# 繪制一條水平直線,表示“最高氣溫”的平均值
plt.axhline(y=df['最高氣溫'].mean(),  # 水平線的 y 值,即最高氣溫的平均值color='red',  # 線條顏色為紅色xmin=0.11,  # 線條起始位置(x軸左側比例),0表示最左,1表示最右xmax=0.95,  # 線條結束位置(x軸右側比例)linestyle='--',  # 線條樣式為虛線linewidth=1,  # 線條寬度label='平均最高氣溫'  # 為該線條添加圖例標簽,后續調用 plt.legend() 時會顯示
)# 繪制另一條水平直線,表示“最低氣溫”的平均值
plt.axhline(y=df['最低氣溫'].mean(),  # 水平線的 y 值,即最低氣溫的平均值color='blue',  # 線條顏色為藍色xmin=0.11,  # 同上,線條起始位置xmax=0.95,  # 同上,線條結束位置dashes=(5, 3),  # 自定義虛線樣式,5像素實線 + 3像素空白linewidth=1,  # 線條寬度label='平均最低氣溫'  # 圖例標簽
)# 繪制一條垂直直線,表示某個特定日期(2025年7月21日)
plt.axvline(x=datetime(2025, 7, 21),  # 垂直線的 x 值,這里是一個具體的日期(需要提前導入 datetime 模塊)color='#b65',  # 使用十六進制顏色碼定義線條顏色(一種橙色調)linestyle='--',  # 虛線樣式label='2025-07-21'  # 圖例標簽
)# 設置圖例(legend)
plt.legend(labels=['最高氣溫', '最低氣溫', '平均最高氣溫', '平均最低氣溫', '2025-07-21'],  # 圖例中顯示的標簽名稱loc='lower left',  # 圖例放置的位置:左下角ncol=3,  # 圖例分為1列(縱向排列)title='天氣溫度',  # 圖例的標題fontsize=10,  # 圖例文字的字體大小frameon=True,  # 是否顯示圖例邊框edgecolor='blue',  # 圖例邊框顏色facecolor='lightblue',  # 圖例背景顏色shadow=True,  # 是否添加陰影效果fancybox=True  # 是否使用圓角邊框(False 為直角)
)# 顯示圖形
plt.show()

繪制的圖形如下圖所示:

在這里插入圖片描述

2. 參考區域

參考區域(Reference Area)用于在圖表中高亮顯示某一范圍,常用于突出顯示數據的正常區間、異常區間或趨勢變化區域。

2.1 水平參考區域

使用 plt.axhspan() 函數可以在圖表中添加一個水平方向的矩形區域(即 y 軸方向上的高亮區域)。

參數名描述示例
ymin區域下邊界(y軸值)ymin=2
ymax區域上邊界(y軸值)ymax=4
xmin區域起始的 x 軸比例位置(0 到 1)xmin=0.1
xmax區域結束的 x 軸比例位置(0 到 1)xmax=0.9
color區域填充顏色color='yellow'
alpha透明度(0 為完全透明,1 為不透明)alpha=0.3
zorder層級順序(數值越大越靠上)zorder=0
hatch填充圖案(如 '/', '\\', 'x' 等)hatch='//'

2.2 垂直參考區域

使用 plt.axvspan() 函數可以在圖表中添加一個垂直方向的矩形區域(即 x 軸方向上的高亮區域)。

參數名描述示例
xmin區域左邊界(x軸值)xmin=1.5
xmax區域右邊界(x軸值)xmax=3.5
ymin區域起始的 y 軸比例位置(0 到 1)ymin=0.1
ymax區域結束的 y 軸比例位置(0 到 1)ymax=0.9
color區域填充顏色color='lightblue'
alpha透明度alpha=0.4
zorder層級順序zorder=0
hatch填充圖案hatch='x'

2.3 示例:繪制天氣氣溫折線圖

數據如下圖所示,需要根據這個數據繪制氣溫折線圖,并設置x軸和y軸的刻度范圍和刻度標簽、標題、圖例、網格線、參考線和參考區域。

在這里插入圖片描述

實現代碼如下所示:

from datetime import datetimeimport matplotlib.pyplot as plt
import pandas as pd# 設置中文字體為 SimHei(黑體),確保中文標簽可以正常顯示(可選)
plt.rcParams['font.sans-serif'] = ['SimHei']# 解決負號 '-' 顯示為方塊的問題,保證負號正常顯示
plt.rcParams['axes.unicode_minus'] = False# 請將此處替換為你的CSV文件路徑
csv_file_path = './data/氣溫.csv'
# 讀取CSV文件
df = pd.read_csv(csv_file_path)# 處理日期格式
df['日期'] = pd.to_datetime(df['日期'])# 提取溫度數值(去除℃符號并轉換為整數)
df['最高氣溫'] = df['最高氣溫'].str.replace('℃', '').astype(int)
df['最低氣溫'] = df['最低氣溫'].str.replace('℃', '').astype(int)# 繪制折線圖
# plt.plot(df['日期'], df['最高氣溫'])
# plt.plot(df['日期'], df['最低氣溫'])
plt.plot('日期', '最高氣溫', data=df)
plt.plot('日期', '最低氣溫', data=df)# 設置x軸日期格式,自動旋轉日期標簽
plt.gcf().autofmt_xdate()# 設置 x 軸的標簽(xlabel)
plt.xlabel(xlabel='日 期',  # 標簽內容,顯示為“日 期”fontdict={'fontsize': 12, 'color': '#000', 'fontweight': 'bold'},  # 設置字體樣式:字體大小12,顏色為黑色,加粗labelpad=10,  # 標簽與坐標軸之間的距離(以像素為單位)loc='center'  # 標簽在 x 軸上的對齊方式,'center' 表示居中對齊
)# 設置 y 軸的標簽(ylabel)
plt.ylabel(ylabel='氣 溫',  # 標簽內容,顯示為“氣 溫”fontdict={'fontsize': 12, 'color': '#000', 'color': '#000', 'fontweight': 'bold'},  # 設置字體樣式:字體大小12,顏色為黑色,加粗labelpad=5,  # 標簽與坐標軸之間的距離(以像素為單位)loc='center'  # 標簽在 y 軸上的對齊方式,'center' 表示居中對齊
)# 設置 x 軸(時間)的顯示范圍
# 從 2025年7月8日 開始,到 2025年7月25日 結束
start_time = datetime(2025, 7, 8)
end_time = datetime(2025, 7, 25)# 設置 x 軸的范圍(時間范圍)
plt.xlim((start_time, end_time))# 設置 y 軸的數值范圍,從 13 到 26
plt.ylim(ymin=13, ymax=26)# 設置 x 軸的刻度位置和刻度標簽
# rotation:刻度標簽旋轉角度(30度)
# color:刻度標簽顏色(藍色系)
# fontsize:字體大小
# ticks:指定刻度的位置(字符串日期)
# labels:對應每個刻度位置的顯示標簽(中文格式)
plt.xticks(rotation=30,color='#09f',fontsize=10,ticks=['2025-07-09', '2025-07-10', '2025-07-11', '2025-07-12', '2025-07-13','2025-07-14', '2025-07-15', '2025-07-16', '2025-07-17', '2025-07-18','2025-07-19', '2025-07-20', '2025-07-21', '2025-07-22', '2025-07-23','2025-07-24', '2025-07-25'],labels=['9日', '10日', '11日', '12日', '13日', '14日', '15日', '16日','17日', '18日', '19日', '20日', '21日', '22日', '23日', '24日', '25日'])# 設置 y 軸的刻度位置和刻度標簽
# rotation:標簽旋轉角度
# color:標簽顏色
# fontsize:字體大小
# ticks:刻度位置
# labels:顯示的標簽(添加了溫度單位 ℃)
plt.yticks(rotation=30,color='#09f',fontsize=10,ticks=[13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26],labels=['13℃', '14℃', '15℃', '16℃', '17℃', '18℃', '19℃', '20℃','21℃', '22℃', '23℃', '24℃', '25℃', '26℃'])# 設置圖表標題
plt.title(label='2025年7月8日至2025年7月25日的氣溫變化',  # 標題內容fontdict={'fontsize': 14, 'color': '#09f'},  # 字體樣式:大小14,顏色為藍色(#09f)loc='center',  # 標題對齊方式:居中pad=10,  # 標題與圖表頂部的距離(以像素為單位)fontweight='bold',  # 字體加粗(此參數可被 fontdict 覆蓋)color='red',  # 標題文字顏色(若設置,會覆蓋 fontdict 中的顏色)backgroundcolor='lightblue'  # 設置標題背景顏色為淺藍色
)# 設置圖表網格線
plt.grid(visible=True,  # 是否顯示網格線,設置為 True 表示顯示網格線which='both',  # 應用于哪種刻度線('major' 主刻度,'minor' 次刻度,'both' 兩者都應用)axis='both',  # 在哪個軸上顯示網格線('x' x軸,'y' y軸,'both' 兩個軸都顯示)linestyle='--',  # 網格線的樣式,這里是虛線color='lightblue',  # 網格線的顏色,這里設置為淺藍色alpha=0.5,  # 網格線的透明度,范圍是0到1,數值越低越透明linewidth=1,  # 網格線的寬度dashes=(5, 5)  # 虛線的樣式,元組中的第一個數字表示實線部分長度,第二個數字表示間隔長度
)# 繪制一條水平直線,表示“最高氣溫”的平均值
plt.axhline(y=df['最高氣溫'].mean(),  # 水平線的 y 值,即最高氣溫的平均值color='red',  # 線條顏色為紅色xmin=0.11,  # 線條起始位置(x軸左側比例),0表示最左,1表示最右xmax=0.95,  # 線條結束位置(x軸右側比例)linestyle='--',  # 線條樣式為虛線linewidth=1,  # 線條寬度label='平均最高氣溫'  # 為該線條添加圖例標簽,后續調用 plt.legend() 時會顯示
)# 繪制另一條水平直線,表示“最低氣溫”的平均值
plt.axhline(y=df['最低氣溫'].mean(),  # 水平線的 y 值,即最低氣溫的平均值color='blue',  # 線條顏色為藍色xmin=0.11,  # 同上,線條起始位置xmax=0.95,  # 同上,線條結束位置dashes=(5, 3),  # 自定義虛線樣式,5像素實線 + 3像素空白linewidth=1,  # 線條寬度label='平均最低氣溫'  # 圖例標簽
)# 繪制一條垂直直線,表示某個特定日期(2025年7月21日)
plt.axvline(x=datetime(2025, 7, 21),  # 垂直線的 x 值,這里是一個具體的日期(需要提前導入 datetime 模塊)color='#b65',  # 使用十六進制顏色碼定義線條顏色(一種橙色調)linestyle='--',  # 虛線樣式label='2025-07-21'  # 圖例標簽
)# 設置圖例(legend)
plt.legend(labels=['最高氣溫', '最低氣溫', '平均最高氣溫', '平均最低氣溫', '2025-07-21'],  # 圖例中顯示的標簽名稱loc='lower left',  # 圖例放置的位置:左下角ncol=3,  # 圖例分為1列(縱向排列)title='天氣溫度',  # 圖例的標題fontsize=10,  # 圖例文字的字體大小frameon=True,  # 是否顯示圖例邊框edgecolor='blue',  # 圖例邊框顏色facecolor='lightblue',  # 圖例背景顏色shadow=True,  # 是否添加陰影效果fancybox=True  # 是否使用圓角邊框(False 為直角)
)# 繪制一個水平方向的跨度(矩形區域),表示特定范圍內的氣溫區間
plt.axhspan(ymin=23,                        # 矩形區域下邊界的 y 值(此處為溫度)ymax=24.5,                      # 矩形區域上邊界的 y 值xmin=0.1,                       # 矩形區域左邊界的 x 軸比例(從x軸起點開始的比例)xmax=0.95,                      # 矩形區域右邊界的 x 軸比例(到x軸終點的比例)color='lightblue',              # 區域填充顏色alpha=0.6,                      # 透明度,范圍是0到1,數值越小越透明zorder=0,                       # 圖層順序,值越小越靠后,默認背景層級hatch='///'                     # 填充模式,這里使用斜線填充
)# 繪制一個垂直方向的跨度(矩形區域),強調特定時間段
plt.axvspan(xmin=datetime(2025, 7, 20),     # 矩形區域左邊界的時間點(起始日期時間)xmax=datetime(2025, 7, 22),     # 矩形區域右邊界的時間點(結束日期時間)需要導入 datetime 模塊ymin=0.05,                      # 矩形區域下邊界的 y 軸比例(從y軸起點開始的比例)ymax=0.96,                      # 矩形區域上邊界的 y 軸比例(到y軸終點的比例)color='lightblue',              # 區域填充顏色alpha=0.6,                      # 透明度zorder=0,                       # 圖層順序hatch='///'                     # 填充模式,這里使用斜線填充
)# 顯示圖形
plt.show()

繪制的圖形如下圖所示:

在這里插入圖片描述


當然可以!以下是 “注釋文本” 部分的完整內容,包含:

  • 6.1 指向型注釋文本:使用 plt.annotate() 方法;
  • 6.2 無指向型注釋文本:使用 plt.text() 方法;

每個方法都配有詳細的 參數說明表格示例代碼,幫助你掌握如何在圖表中添加文字注釋。


六、注釋文本

在 Matplotlib 中,注釋文本 是一種用于在圖表中添加說明性文字的方式,可以用于標注關鍵點、解釋趨勢或強調特定區域。

1. 指向型注釋文本

使用 plt.annotate() 函數可以添加一個帶有箭頭指向的注釋文本,非常適合標注圖表中的特定數據點。

參數名描述示例
text注釋文本內容'最大值'
xy被注釋點的坐標(x, y)(2, 4)
xytext注釋文本的位置坐標(30, 40)
xycoords被注釋點坐標的參考系'data', 'axes fraction'
textcoords注釋文本位置的參考系'offset points', 'data'
arrowprops箭頭屬性字典dict(arrowstyle='->', color='red')
fontsize字體大小10
color文字顏色'blue'
ha水平對齊方式('left', 'center', 'right''center'
va垂直對齊方式('top', 'center', 'bottom''bottom'

arrowstyle的參數取值及對應的樣式:

取值樣式
-
<-
->
<->?
<|-
-->
<|->
fancy?
]-]–
-[–[
]-[]–[
|-
]->]→
<-[←[
simple?
wedge

2. 無指向型注釋文本

使用 plt.text() 函數可以添加一個不帶箭頭的注釋文本,用于在圖表的指定位置添加靜態說明性文字。

參數名描述示例
x, y注釋文本的位置坐標(數據坐標)x=2, y=10
s注釋文本內容'注意區域'
fontdict字體字典,控制字體樣式{'size': 12, 'color': 'green'}
fontsize字體大小10
color文字顏色'purple'
rotation文字旋轉角度45
ha水平對齊方式('left', 'center', 'right''center'
va垂直對齊方式('top', 'center', 'bottom''bottom'

3. 示例:繪制天氣氣溫折線圖

數據如下圖所示,需要根據這個數據繪制氣溫折線圖,并設置x軸和y軸的刻度范圍和刻度標簽、標題、圖例、網格線、參考線、參考區域和注釋文本。

在這里插入圖片描述

實現代碼如下所示:

from datetime import datetimeimport matplotlib.pyplot as plt
import pandas as pd# 設置中文字體為 SimHei(黑體),確保中文標簽可以正常顯示(可選)
plt.rcParams['font.sans-serif'] = ['SimHei']# 解決負號 '-' 顯示為方塊的問題,保證負號正常顯示
plt.rcParams['axes.unicode_minus'] = False# 請將此處替換為你的CSV文件路徑
csv_file_path = './data/氣溫.csv'
# 讀取CSV文件
df = pd.read_csv(csv_file_path)# 處理日期格式
df['日期'] = pd.to_datetime(df['日期'])# 提取溫度數值(去除℃符號并轉換為整數)
df['最高氣溫'] = df['最高氣溫'].str.replace('℃', '').astype(int)
df['最低氣溫'] = df['最低氣溫'].str.replace('℃', '').astype(int)# 繪制折線圖
# plt.plot(df['日期'], df['最高氣溫'])
# plt.plot(df['日期'], df['最低氣溫'])
plt.plot('日期', '最高氣溫', data=df)
plt.plot('日期', '最低氣溫', data=df)# 設置x軸日期格式,自動旋轉日期標簽
plt.gcf().autofmt_xdate()# 設置 x 軸的標簽(xlabel)
plt.xlabel(xlabel='日 期',  # 標簽內容,顯示為“日 期”fontdict={'fontsize': 12, 'color': '#000', 'fontweight': 'bold'},  # 設置字體樣式:字體大小12,顏色為黑色,加粗labelpad=10,  # 標簽與坐標軸之間的距離(以像素為單位)loc='center'  # 標簽在 x 軸上的對齊方式,'center' 表示居中對齊
)# 設置 y 軸的標簽(ylabel)
plt.ylabel(ylabel='氣 溫',  # 標簽內容,顯示為“氣 溫”fontdict={'fontsize': 12, 'color': '#000', 'color': '#000', 'fontweight': 'bold'},  # 設置字體樣式:字體大小12,顏色為黑色,加粗labelpad=5,  # 標簽與坐標軸之間的距離(以像素為單位)loc='center'  # 標簽在 y 軸上的對齊方式,'center' 表示居中對齊
)# 設置 x 軸(時間)的顯示范圍
# 從 2025年7月8日 開始,到 2025年7月25日 結束
start_time = datetime(2025, 7, 8)
end_time = datetime(2025, 7, 25)# 設置 x 軸的范圍(時間范圍)
plt.xlim((start_time, end_time))# 設置 y 軸的數值范圍,從 13 到 26
plt.ylim(ymin=13, ymax=26)# 設置 x 軸的刻度位置和刻度標簽
# rotation:刻度標簽旋轉角度(30度)
# color:刻度標簽顏色(藍色系)
# fontsize:字體大小
# ticks:指定刻度的位置(字符串日期)
# labels:對應每個刻度位置的顯示標簽(中文格式)
plt.xticks(rotation=30,color='#09f',fontsize=10,ticks=['2025-07-09', '2025-07-10', '2025-07-11', '2025-07-12', '2025-07-13','2025-07-14', '2025-07-15', '2025-07-16', '2025-07-17', '2025-07-18','2025-07-19', '2025-07-20', '2025-07-21', '2025-07-22', '2025-07-23','2025-07-24', '2025-07-25'],labels=['9日', '10日', '11日', '12日', '13日', '14日', '15日', '16日','17日', '18日', '19日', '20日', '21日', '22日', '23日', '24日', '25日'])# 設置 y 軸的刻度位置和刻度標簽
# rotation:標簽旋轉角度
# color:標簽顏色
# fontsize:字體大小
# ticks:刻度位置
# labels:顯示的標簽(添加了溫度單位 ℃)
plt.yticks(rotation=30,color='#09f',fontsize=10,ticks=[13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26],labels=['13℃', '14℃', '15℃', '16℃', '17℃', '18℃', '19℃', '20℃','21℃', '22℃', '23℃', '24℃', '25℃', '26℃'])# 設置圖表標題
plt.title(label='2025年7月8日至2025年7月25日的氣溫變化',  # 標題內容fontdict={'fontsize': 14, 'color': '#09f'},  # 字體樣式:大小14,顏色為藍色(#09f)loc='center',  # 標題對齊方式:居中pad=10,  # 標題與圖表頂部的距離(以像素為單位)fontweight='bold',  # 字體加粗(此參數可被 fontdict 覆蓋)color='red',  # 標題文字顏色(若設置,會覆蓋 fontdict 中的顏色)backgroundcolor='lightblue'  # 設置標題背景顏色為淺藍色
)# 設置圖表網格線
plt.grid(visible=True,  # 是否顯示網格線,設置為 True 表示顯示網格線which='both',  # 應用于哪種刻度線('major' 主刻度,'minor' 次刻度,'both' 兩者都應用)axis='both',  # 在哪個軸上顯示網格線('x' x軸,'y' y軸,'both' 兩個軸都顯示)linestyle='--',  # 網格線的樣式,這里是虛線color='lightblue',  # 網格線的顏色,這里設置為淺藍色alpha=0.5,  # 網格線的透明度,范圍是0到1,數值越低越透明linewidth=1,  # 網格線的寬度dashes=(5, 5)  # 虛線的樣式,元組中的第一個數字表示實線部分長度,第二個數字表示間隔長度
)# 繪制一條水平直線,表示“最高氣溫”的平均值
plt.axhline(y=df['最高氣溫'].mean(),  # 水平線的 y 值,即最高氣溫的平均值color='red',  # 線條顏色為紅色xmin=0.11,  # 線條起始位置(x軸左側比例),0表示最左,1表示最右xmax=0.95,  # 線條結束位置(x軸右側比例)linestyle='--',  # 線條樣式為虛線linewidth=1,  # 線條寬度label='平均最高氣溫'  # 為該線條添加圖例標簽,后續調用 plt.legend() 時會顯示
)# 繪制另一條水平直線,表示“最低氣溫”的平均值
plt.axhline(y=df['最低氣溫'].mean(),  # 水平線的 y 值,即最低氣溫的平均值color='blue',  # 線條顏色為藍色xmin=0.11,  # 同上,線條起始位置xmax=0.95,  # 同上,線條結束位置dashes=(5, 3),  # 自定義虛線樣式,5像素實線 + 3像素空白linewidth=1,  # 線條寬度label='平均最低氣溫'  # 圖例標簽
)# 繪制一條垂直直線,表示某個特定日期(2025年7月21日)
plt.axvline(x=datetime(2025, 7, 21),  # 垂直線的 x 值,這里是一個具體的日期(需要提前導入 datetime 模塊)color='#b65',  # 使用十六進制顏色碼定義線條顏色(一種橙色調)linestyle='--',  # 虛線樣式label='2025-07-21'  # 圖例標簽
)# 設置圖例(legend)
plt.legend(labels=['最高氣溫', '最低氣溫', '平均最高氣溫', '平均最低氣溫', '2025-07-21'],  # 圖例中顯示的標簽名稱loc='lower left',  # 圖例放置的位置:左下角ncol=3,  # 圖例分為1列(縱向排列)title='天氣溫度',  # 圖例的標題fontsize=10,  # 圖例文字的字體大小frameon=True,  # 是否顯示圖例邊框edgecolor='blue',  # 圖例邊框顏色facecolor='lightblue',  # 圖例背景顏色shadow=True,  # 是否添加陰影效果fancybox=True  # 是否使用圓角邊框(False 為直角)
)# 繪制一個水平方向的跨度(矩形區域),表示特定范圍內的氣溫區間
plt.axhspan(ymin=23,  # 矩形區域下邊界的 y 值(此處為溫度)ymax=24.5,  # 矩形區域上邊界的 y 值xmin=0.1,  # 矩形區域左邊界的 x 軸比例(從x軸起點開始的比例)xmax=0.95,  # 矩形區域右邊界的 x 軸比例(到x軸終點的比例)color='lightblue',  # 區域填充顏色alpha=0.6,  # 透明度,范圍是0到1,數值越小越透明zorder=0,  # 圖層順序,值越小越靠后,默認背景層級hatch='///'  # 填充模式,這里使用斜線填充
)# 繪制一個垂直方向的跨度(矩形區域),強調特定時間段
plt.axvspan(xmin=datetime(2025, 7, 20),  # 矩形區域左邊界的時間點(起始日期時間)xmax=datetime(2025, 7, 22),  # 矩形區域右邊界的時間點(結束日期時間)需要導入 datetime 模塊ymin=0.05,  # 矩形區域下邊界的 y 軸比例(從y軸起點開始的比例)ymax=0.96,  # 矩形區域上邊界的 y 軸比例(到y軸終點的比例)color='lightblue',  # 區域填充顏色alpha=0.6,  # 透明度zorder=0,  # 圖層順序hatch='///'  # 填充模式,這里使用斜線填充
)# 獲取數據框中“最高氣溫”列的最小值,并將其賦值給min_temp變量
min_temp = df['最高氣溫'].min()# 篩選出“最高氣溫”等于min_temp的所有行,并獲取對應的第一行的“日期”列值,然后轉換為日期格式
target_date = pd.to_datetime(df[df['最高氣溫'] == min_temp]['日期'].iloc[0])# 在圖表上添加注解,指示最高氣溫的最小值及其對應的日期
plt.annotate(text='最高氣溫最小值',  # 注解文本內容xy=(target_date, min_temp),  # 注解箭頭指向的位置(x,y)xytext=(target_date, 19.5),  # 注解文本位置(x,y)arrowprops=dict(arrowstyle='->', color='blue', alpha=0.8),  # 箭頭屬性fontsize=10,  # 文本大小color='blue',  # 文本顏色alpha=0.8,  # 文本透明度ha='center',  # 水平對齊方式va='center'  # 垂直對齊方式
)# 計算“最高氣溫”的平均值并四舍五入保留一位小數
max_temp_avg = df['最高氣溫'].mean().round(1)# 在指定位置添加文本,顯示最高氣溫的平均值
plt.text(x=datetime(2025, 7, 22),  # 文本x坐標y=max_temp_avg,  # 文本y坐標s=f'avg:{max_temp_avg}°C',  # 文本內容fontsize=10,  # 文本大小color='red',  # 文本顏色# rotation=45,  # 可選:文本旋轉角度,默認不旋轉alpha=0.8,  # 文本透明度ha='left',  # 水平對齊方式va='bottom'  # 垂直對齊方式
)# 將數據框中的“日期”列轉換為datetime類型列表,方便后續繪圖使用
x_temp = pd.to_datetime(df['日期']).tolist()# 獲取“最高氣溫”列的值,并加上溫度單位°C形成新列表
y_temp = df['最高氣溫'].tolist()
y_temp_with_unit = [f"{temp}°C" for temp in y_temp]
for i in range(len(y_temp_with_unit)):# 對每個最高氣溫值添加標注,顯示其具體數值和單位plt.text(x=x_temp[i],  # 文本x坐標y=y_temp[i],  # 文本y坐標s=y_temp_with_unit[i],  # 文本內容fontsize=10,  # 文本大小color='#000',  # 文本顏色rotation=30,  # 文本旋轉角度ha='left',  # 水平對齊方式va='bottom'  # 垂直對齊方式)# 同樣處理最低氣溫的數據,并在圖表上標注
y_temp = df['最低氣溫'].tolist()
y_temp_with_unit = [f"{temp}°C" for temp in y_temp]
for i in range(len(y_temp_with_unit)):plt.text(x=x_temp[i],  # 文本x坐標y=y_temp[i],  # 文本y坐標s=y_temp_with_unit[i],  # 文本內容fontsize=10,  # 文本大小color='#000',  # 文本顏色rotation=30,  # 文本旋轉角度ha='left',  # 水平對齊方式va='bottom'  # 垂直對齊方式)# 顯示圖形
plt.show()

繪制的圖形如下圖所示:

在這里插入圖片描述


七、表格

1. 表格

在 Matplotlib 中,可以使用 plt.table()Axes.table() 方法在圖表中添加一個數據表格。該功能常用于將圖表與原始數據結合展示,增強信息表達。

參數名類型描述示例值
cellText2D list 或 2D 數組表格主體數據(每個單元格的文本),形狀為 (n_rows, n_cols)[['A', 'B'], ['1', '2']]
cellColours2D list of colors每個單元格的背景顏色,形狀與 cellText 相同[['red', 'green'], ['yellow', 'blue']]
cellLocstr(可選)單元格文本的對齊方式:'left', 'center', 'right''center'
colWidthslist of floats(可選)每列的相對寬度(比例)[0.2, 0.2, 0.2]
rowLabelslist(長度 = n_rows)每行左側的標簽['Row1', 'Row2']
rowColourslist of colors每行標簽的背景色['lightgray', 'white']
rowLocstr(可選)行標簽的文本對齊方式'right'
colLabelslist(長度 = n_cols)每列頂部的列名['ColA', 'ColB']
colColourslist of colors每列標題的背景顏色['lightblue'] * 3
colLocstr(可選)列標簽的文本對齊方式'center'
locstr 或 4-tuple表格在圖表中的位置(如 'top', 'bottom', 'center')或自定義位置'bottom', (0.1, 0.1, 0.8, 0.5)
bbox[left, bottom, width, height]以坐標形式指定表格位置和大小(歸一化坐標 0~1)[0.1, 0.1, 0.8, 0.5]
edgesstr控制單元格邊框顯示:
'closed':全部邊框
'open':無邊框
'horizontal' / 'vertical'
'B', 'T', 'L', 'R':僅顯示某邊
'closed'
**kwargs其他屬性fontsize, alpha, zorderfontsize=10, alpha=0.9

2. 示例:繪制國內生產總值柱形圖

數據如下圖所示,需要根據這個數據繪制國內生產總值柱形圖,并顯示數據。

在這里插入圖片描述

實現代碼如下圖所示:

# 導入 matplotlib.pyplot 模塊,用于繪圖
import matplotlib.pyplot as plt# 導入 numpy 模塊,用于數值計算,這里主要用于生成數組
import numpy as np# 導入 pandas 模塊,用于數據處理,特別是讀取和操作 CSV 文件
import pandas as pd# 用來正常顯示中文標簽
plt.rcParams['font.sans-serif'] = ['SimHei']
# 解決負號'-'顯示為方塊的問題
plt.rcParams['axes.unicode_minus'] = False# 定義 CSV 文件的路徑(請根據實際情況修改路徑)
csv_file_path = './data/國內生成總值.csv'# 使用 pandas 的 read_csv 函數讀取 CSV 文件,并將數據存儲在一個 DataFrame 對象中
df = pd.read_csv(csv_file_path)# 使用 numpy 的 arange 函數生成一個從 0 到 len(df)-1 的數組,表示柱狀圖中每個柱子的 x 軸位置
x = np.arange(len(df))# 從 DataFrame 中提取 '年份' 列,作為 x 軸的刻度標簽
tick_label = df['年份'].apply(lambda x1: str(x1) + '年')# 從 DataFrame 中提取 '生產總值' 列,作為柱狀圖中每個柱子的高度
height = df['生產總值']# 繪制柱狀圖:
# - x: 每個柱子在 x 軸上的位置(基于之前生成的數組)
# - height: 指定為 '生產總值',表示從 data 參數中提取該列作為柱子的高度
# - width: 設置柱子的寬度為 0.5
# - tick_label: 指定為 '年份',表示從 data 參數中提取該列作為 x 軸的刻度標簽
# - data: 傳入之前讀取的 DataFrame,作為繪圖的數據源
# plt.bar(x=x, height='生產總值', width=0.5, tick_label='年份', data=df)
plt.bar(x=x, height=height, width=0.5, tick_label=tick_label)# 將 DataFrame 中的數據部分(所有行和列)提取為 NumPy 數組,作為表格的單元格內容
table_data = df.values# 獲取 DataFrame 的列名,作為表格的列標題
col_labels = df.columns# 使用 matplotlib 的 plt.table() 在圖表中繪制一個表格
table = plt.table(cellText=table_data,  # 表格每個單元格要顯示的文本數據(二維數組)cellLoc='center',  # 單元格內文字的對齊方式,'center' 表示居中colWidths=[0.3, 0.3],  # 每一列的寬度(相對寬度),這里兩列各占 0.3colLabels=col_labels,  # 列標題(表頭),從 df.columns 獲取colColours=['lightblue', 'lightblue'],  # 列標題背景顏色,這里兩列都設為淺藍色colLoc='center',  # 列標題文字的對齊方式,居中顯示loc='lower left',  # 表格在圖表中的位置,'lower left' 表示左下角edges='BT',  # 控制單元格邊框的顯示方式:# 'B' = 底部邊框(Bottom)# 'T' = 頂部邊框(Top)# 'L' = 左側邊框(Left)# 'R' = 右側邊框(Right)# 這里只顯示上下邊框,左右無邊框zorder=1  # 圖層順序,值越大越在上層。設為1表示表格顯示在數據圖層之上
)# 顯示繪制完成的圖表
plt.show()

繪制的圖形如下圖所示:

在這里插入圖片描述


八、數據及代碼下載地址

下載地址:https://download.csdn.net/download/zcs2312852665/91529326

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/91402.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/91402.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/91402.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Linux基礎知識系列】第七十八篇 - 初識Nmap:網絡掃描工具

在網絡管理和安全領域&#xff0c;網絡掃描是一個不可或缺的工具。它可以幫助網絡管理員了解網絡中的設備、服務以及潛在的安全漏洞。Nmap&#xff08;Network Mapper&#xff09;是一個功能強大的開源網絡掃描工具&#xff0c;它能夠快速發現網絡中的主機、端口和服務&#xf…

EasyGBS的兩種錄像回看

EasyGBS 支持兩種錄像回看&#xff0c;即“平臺端”的錄像回看和“設備端”的錄像回看。本期我們來介紹兩者的區別和使用方法。一、平臺端錄像1、什么是平臺端錄像平臺端錄像是指由 EasyGBS 平臺直接錄制并存儲。2、配置平臺端錄像進入平臺&#xff0c;依次點擊【錄像回放】→【…

大模型學習思路推薦!

為進一步貫徹落實中共中央印發《關于深化人才發展體制機制改革的意見》和國務院印發《關于“十四五”數字經濟發展規劃》等有關工作的部署要求&#xff0c;深入實施人才強國戰略和創新驅動發展戰略&#xff0c;加強全國數字化人才隊伍建設&#xff0c;持續推進人工智能從業人員…

數據庫連接池性能優化實戰

背景我們公司正在處于某個項目的維護階段&#xff0c;領導對資源告警比較重視&#xff0c;服務器資源告警的就不說了&#xff0c;運維同學每隔一小時都會檢測線上環境的應用服務信息&#xff0c;例如&#xff1a;網關日志響應時間告警/nginx日志接口響應時間告警/日志關鍵字異常…

Excel常用函數大全,非常實用

一、數學與統計函數1. SUM作用&#xff1a;求和SUM(number1, [number2], ...)SUM(A1:A10) ? 計算A1到A10單元格的總和注意&#xff1a;自動忽略文本和空單元格2. AVERAGE作用&#xff1a;計算平均值AVERAGE(number1, [number2], ...)AVERAGE(B2:B20) ? 計算B列20個數據的平均…

性能優化(一):時間分片(Time Slicing):讓你的應用在高負載下“永不卡頓”的秘密

性能優化(一)&#xff1a;時間分片&#xff08;Time Slicing&#xff09;&#xff1a;讓你的應用在高負載下“永不卡頓”的秘密 引子&#xff1a;那張讓你瀏覽器崩潰的“無限列表” 想象一個場景&#xff1a;你需要渲染一個包含一萬個項目的列表。在我們的“看不見”的應用中&a…

《C++》STL--list容器詳解

在 C 標準模板庫(STL)中&#xff0c;list 是一個非常重要的序列容器&#xff0c;它實現了雙向鏈表的數據結構。與 vector 和 deque 不同&#xff0c;list 提供了高效的插入和刪除操作&#xff0c;特別是在任意位置。本文將深入探討 list 容器的特性、使用方法以及常見操作。 文…

Day 28:類的定義和方法

DAY 28 類的定義和方法 知識點學習 1. 類的定義 在Python中&#xff0c;類是創建對象的模板。使用class關鍵字來定義一個類。類名通常采用首字母大寫的命名方式&#xff08;PascalCase&#xff09;。 # 最簡單的類定義 class MyClass:pass # 使用pass占位符類的定義就像是…

OSPF綜合實驗報告冊

一、實驗拓撲二、實驗要求1、R4為ISP&#xff0c;其上只配置IP地址&#xff1b;R4與其他所直連設備間均使用公有IP&#xff1b; 2、R3-R5、R6、R7為MGRE環境&#xff0c;R3為中心站點&#xff1b; 3、整個OSPF環境IP基于172.16.0.0/16劃分&#xff1b;除了R12有兩個環回&#x…

網絡層6——內部網關協議RIP、OSPF(重點)

目錄 一、基本概念 1、理想的路由算法應具備的特點 2、分層次的路由選擇協議 二、內部網關協議RIP 1、特點 2、路由交換信息 3、距離向量算法 4、壞消息傳送慢問題 5、RIP報文格式 三、內部網關協議OSPF 1、特點 2、其他特點 3、自治系統區域劃分 4、OSPF的5中分…

同品牌的系列廣告要如何保證宣傳的連貫性?

對于品牌的系列廣告而言&#xff0c;內容的連貫性十分重要。如果系列廣告之間缺乏內在聯系&#xff0c;不僅會削弱品牌形象的統一性&#xff0c;還可能導致用戶的認知混亂。保證宣傳內容的連貫性不是讓每則廣告完全相同&#xff0c;而是在變化中保持核心要素的一致性。我們該如…

深度學習:激活函數Activaton Function

一、為什么需要激活函數&#xff1f;神經網絡本質上是多個線性變換&#xff08;矩陣乘法&#xff09;疊加。如果沒有激活函數&#xff0c;即使疊加多層&#xff0c;整體仍等價于一個線性函數&#xff1a;這樣的網絡無法學習和擬合現實世界中復雜的非線性關系。激活函數的作用&a…

deepseek: 切分類和長函數到同名文件中

import re import sys import os import ast from tokenize import generate_tokens, COMMENT, STRING, NL, INDENT, DEDENT import iodef extract_entities(filename):"""提取類和函數到單獨文件"""with open(filename, r, encodingutf-8) as f…

新型融合肽遞送外泌體修飾可注射溫敏水凝膠用于骨再生

溫敏水凝膠因能模擬細胞外基質微環境&#xff0c;且具有原位注射性和形態適應性&#xff0c;在骨組織工程中應用廣泛。小腸黏膜下層&#xff08;SIS&#xff09;作為天然細胞外基質來源&#xff0c;富含 I 型和 III 型膠原蛋白及多種生物活性因子&#xff0c;其制備的水凝膠在組…

SPI接口的4種模式(根據時鐘極性和時鐘相位)

SPI&#xff08;Serial Peripheral Interface&#xff09; 接口根據時鐘極性&#xff08;CPOL&#xff09;和時鐘相位&#xff08;CPHA&#xff09;的不同組合&#xff0c;共有 4種工作模式。這些模式決定了數據采樣和傳輸的時序關系&#xff0c;是SPI通信中必須正確配置的關鍵…

Java:高頻面試知識分享2

HashSet 和 TreeSet 的區別&#xff1f;底層實現&#xff1a;HashSet 基于 HashMap 實現&#xff0c;使用哈希表存儲元素&#xff1b;TreeSet 基于 TreeMap&#xff0c;底層為紅黑樹。元素順序&#xff1a;HashSet 無序&#xff1b;TreeSet 會根據元素的自然順序或傳入的 Compa…

C語言習題講解-第九講- 常見錯誤分類等

C語言習題講解-第九講- 常見錯誤分類等1. C程序常見的錯誤分類不包含&#xff1a;&#xff08; &#xff09;2. 根據下面遞歸函數&#xff1a;調用函數 Fun(2) &#xff0c;返回值是多少&#xff08; &#xff09;3. 關于遞歸的描述錯誤的是&#xff1a;&#xff08; &#x…

A?算法(A-star algorithm)一種在路徑規劃和圖搜索中廣泛使用的啟發式搜索算法

A?A*A?算法&#xff08;A-star algorithm&#xff09;是一種在路徑規劃和圖搜索中廣泛使用的啟發式搜索算法&#xff0c;它結合了Dijkstra算法的廣度優先搜索思想和啟發式算法的效率優勢&#xff0c;能夠高效地找到從起點到終點的最短路徑。 1. 基本原理 A*算法的核心是通過估…

UniappDay06

1.填寫訂單-渲染基本信息 靜態結構&#xff08;分包&#xff09;封裝請求API import { http } from /utils/http import { OrderPreResult } from /types/orderexport const getmemberOrderPreAPI () > {return http<OrderPreResult>({method: GET,url: /member/orde…

論文略讀:GINGER: Grounded Information Nugget-Based Generation of Responses

SIGIR 2025用戶日益依賴對話助手&#xff08;如 ChatGPT&#xff09;來滿足多種信息需求&#xff0c;這些需求包括開放式問題、需要推理的間接回答&#xff0c;以及答案分布在多個段落中的復雜查詢RAG試圖通過在生成過程中引入檢索到的信息來解決這些問題但如何確保回應的透明性…