數據可視化 —— 折線圖應用(大全)

一、導入需要的庫

# Matplotlib 是 Python 最常用的繪圖庫,pyplot 提供了類似 MATLAB 的繪圖接口
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

二、常用的庫函數

  • plt.plot(x軸,y軸):plot()是畫折線圖的函數。

  • plt.xlabel('日期'):x軸的顯示標簽。

  • plt.ylabel('氣溫(度)'):y軸的顯示標簽。

  • plt.xticks([原數據標簽], [替換后的數據標簽], rotation=300):用于x軸數據標簽的顯示,rotation是傾斜度。

  • plt.title('標題名', loc='left'):圖上的名字顯示,loc代表顯示的位置在哪里。

  • plt.grid(which(網格類型)="major", axis(方向)='both', lw(線的寬度)=1):添加網格線。

  • plt.legend([圖例名稱, ..,]shadow(陰影) = True,fancybox(圓角矩形)=True): 顯示圖例。

  • plt.savefig('名字.格式'): 保存圖表為圖片

  • plt.show(): 顯示圖表

  • plt.ylabel('名稱'):設置y軸標簽文本

三、案例一:一周氣溫圖(基礎版)

import matplotlib.pyplot as plt
import numpy as npx = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
# 定義 x 軸數據:包含星期一到星期日的字符串列表
# 用于表示橫坐標的日期標簽high = [28, 28, 25, 18, 17, 20, 25]
# 最高氣溫數據列表(單位假設為攝氏度)
# 按周一到周日順序排列low = [22, 21, 18, 12, 14, 16, 19]
# 最低氣溫數據列表
# 與 high 列表順序一致plt.plot(x, high)
# 繪制最高氣溫折線圖
# 第一個參數 x:橫坐標數據
# 第二個參數 high:縱坐標數據
# 默認使用第一個顏色(藍色)和線性連接plt.plot(x, low)
# 繪制最低氣溫折線圖
# 使用第二個默認顏色(橙色)疊加到同一坐標系plt.show()
# 顯示圖形窗口
# 在腳本中必須調用的函數,用于渲染和顯示所有已繪制的圖形

四、案例二:分店折線圖(中等)

準備好excel文件,拿第一分店的數據

# 導入matplotlib的pyplot模塊,用于繪圖
import matplotlib.pyplot as plt
# 導入pandas模塊,用于數據處理和分析
import pandas as pd# 創建圖形對象,設置圖形參數
plt.figure(num='折線圖', figsize=(6, 4), facecolor='w')  # num:圖形名稱, figsize:圖形尺寸(寬6英寸,高4英寸), facecolor:畫布背景色
# 設置全局字體為黑體(解決中文顯示問題)
plt.rcParams['font.sans-serif'] = ['SimHei']# 使用pandas讀取Excel數據文件
df = pd.read_excel('2022年某店鋪3個分店銷售額.xlsx')# 提取月份數據作為x軸
x = df['月份']
# 提取第一分店銷售額數據作為y軸
y = df['第一分店']# 設置x軸標簽文本
plt.xlabel('月份')
# 設置y軸標簽文本
plt.ylabel('銷售額(萬元)')
# 設置圖表標題(指定宋體、字體大小12、黑色)
plt.title('2022年某店鋪第一分店銷售額', fontsize=12, color='k', fontproperties='SimSun')
# 設置y軸顯示范圍(最小值20,最大值30)
plt.ylim(20, 30)# 添加水平參考線(顯示全年平均值,使用虛線樣式)
plt.axhline(y=sum(y)/12, linestyle=':')# 啟用網格線顯示
plt.grid()# 遍歷每個數據點添加數值標簽
for a, b in zip(x, y):# 在對應坐標位置顯示數值,保留兩位小數,水平居中對齊plt.text(a, b+0.2, '%.2f' % b, ha='center',va='bottom')# 繪制折線圖(青色虛線,方形標記,線寬2)
plt.plot(x, y, 'c:s', linewidth=2)# 添加圖例(包含平均銷售額和分店數據說明,帶陰影效果,圓角邊框,定位在右下角)
plt.legend(('平均銷售額','第一分店'), shadow=True, fancybox=True, loc=4)# 再次繪制折線圖(使用默認參數,可能覆蓋前次樣式)
plt.plot(x, y)# 保存生成的圖表為PNG圖片文件
plt.savefig('2022年某店鋪第一分店銷售額.png')
# 在窗口中顯示圖表
plt.show()

?

五、案例三:正弦余弦圖(中等)

# 導入必要的庫
import numpy as np
import matplotlib.pyplot as plt# 設置中文字體(適用于Windows)
plt.rcParams['font.sans-serif'] = ['SimHei']
# 解決負號顯示問題
plt.rcParams['axes.unicode_minus'] = False  # 創建一個名為'正'的新圖形窗口
plt.figure(num='正')# 生成x軸數據:在-π到π之間生成256個等間距點(包含終點)
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)# 計算正弦和余弦函數值
y1 = np.sin(x)
y2 = np.cos(x)# 設置坐標軸標簽
plt.xlabel('x軸')  # X軸標簽
plt.ylabel('y軸')  # Y軸標簽# 設置x軸顯示范圍(擴展為原范圍的1.5倍)
plt.xlim(x.min() * 1.5, x.max() * 1.5)# 自定義x軸刻度標簽(使用LaTeX符號表示π)
plt.xticks([-4, -2, 0, 2, 4],  # 刻度位置(實際數值)[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$\pi/2$', r'$\pi$']  # 顯示文本
)# 添加標題(居中顯示)
plt.title('正弦余弦圖', loc='center')# 繪制正弦曲線(紅色虛線,線寬2)
plt.plot(x, y1, color='r', linestyle='--', linewidth=2)
# 繪制余弦曲線(黑色實線,線寬2)
plt.plot(x, y2, color='k', linestyle='-', linewidth=2)# 添加帶箭頭的注釋(xy指向點坐標,xytext文本位置)
plt.annotate('最小值',xy=(-np.pi/2, -1.0),         # 箭頭指向位置xytext=(-(np.pi/2), -0.5),   # 文本起始位置arrowprops=dict(arrowstyle='->')  # 箭頭樣式
)# 添加網格線(主網格,雙向,線寬1)
plt.grid(which="major",  # 顯示主網格axis='both',    # 同時顯示x/y軸網格lw=1            # 網格線寬
)# 添加水平參考線(在y=0處,從xmin=0到xmax=0.5)
plt.axhline(y=0, xmin=0, xmax=0.5, linestyle='-', color='r'
)
# 添加垂直參考線(在x=0處)
plt.axvline(x=0, linestyle='-', color='r'
)# 添加垂直參考區域(x在0.5到2.0之間,透明度0.9)
plt.axvspan(xmin=0.5,xmax=2.0,alpha=0.9
)
# 添加水平參考區域(y在0.5到1.0之間,透明度0.3)
plt.axhspan(ymin=0.5,ymax=1.0,alpha=0.3
)# 添加圖例(元組指定條目,loc=1為右上角,帶陰影和圓角邊框)
plt.legend(('正弦函數', '余弦函數'), loc=1, shadow=True, fancybox=True
)# 顯示圖形
plt.show()

六、案例四:銷售額折線圖(進階版)

# 導入 matplotlib 庫的 pyplot 模塊,用于繪圖
import matplotlib.pyplot as plt
# 導入 pandas 庫,用于數據處理和讀取 Excel 文件
import pandas as pd# 創建一個新的圖形窗口,設置窗口標題為 '多柱形圖',圖形大小為 9x6 英寸,背景顏色為白色
plt.figure(num='折線圖', figsize=(9, 6), facecolor='w')# 設置 matplotlib 使用的字體為楷體,以正確顯示中文
plt.rcParams['font.sans-serif'] = 'KaiTi'
# 解決負號顯示為方塊的問題,使負號能正常顯示
plt.rcParams['axes.unicode_minus'] = False# 使用 pandas 的 read_excel 函數讀取 Excel 文件 '不同產品各季度的銷售額.xlsx',并將數據存儲在 DataFrame 對象 df 中
df = pd.read_excel('不同產品各季度的銷售額.xlsx')# 從 DataFrame 中提取 '季度' 列的數據,作為 x 軸的數據
x = df['季度']
# 從 DataFrame 中提取 '產品A' 列的數據,作為產品 A 的銷售額數據
y1 = df['產品A']
# 從 DataFrame 中提取 '產品B' 列的數據,作為產品 B 的銷售額數據
y2 = df['產品B']
# 從 DataFrame 中提取 '產品C' 列的數據,作為產品 C 的銷售額數據
y3 = df['產品C']# 設置圖表的標題為 '不同產品各季度的銷售額',字體大小為 20
plt.title('不同產品各季度的銷售額', fontsize=20)# 設置 y 軸的標簽為 '銷售額(元)'
plt.ylabel('銷售額(元)', fontsize=16)# 設置 y 軸的取值范圍為 0 到 10000
plt.ylim(0, 10000)# 在圖表中添加網格線,方便觀察數據
plt.grid()# 遍歷產品 A 的每個數據點,在數據點上方 500 個單位處添加銷售額的文本標簽
for a, b in zip(x, y1):# 在坐標 (a, b+500) 處添加文本,文本內容為 b 的整數值,水平居中對齊plt.text(a, b + 500, '%d' % b, ha='center')# 繪制產品 A 的折線圖,x 軸為季度數據,y 軸為產品 A 的銷售額數據,線條顏色為紅色,樣式為虛線,數據點用圓形標記
plt.plot(x, y1, 'r:o')# 遍歷產品 B 的每個數據點,在數據點上方 500 個單位處添加銷售額的文本標簽
for a, b in zip(x, y2):# 在坐標 (a, b+500) 處添加文本,文本內容為 b 的整數值,水平居中對齊plt.text(a, b + 500, '%d' % b, ha='center')# 繪制產品 B 的折線圖,x 軸為季度數據,y 軸為產品 B 的銷售額數據,線條顏色為黃色,樣式為點劃線,數據點用菱形標記
plt.plot(x, y2, 'y-.D')# 遍歷產品 C 的每個數據點,在數據點上方 200 個單位處添加銷售額的文本標簽
for a, b in zip(x, y3):# 在坐標 (a, b+200) 處添加文本,文本內容為 b 的整數值,水平居中對齊plt.text(a, b + 200, '%d' % b, ha='center')# 繪制產品 C 的折線圖,x 軸為季度數據,y 軸為產品 C 的銷售額數據,線條顏色為藍色,樣式為雙虛線,數據點用特定樣式標記
plt.plot(x, y3, 'b--4')# 添加圖例,圖例標簽分別為 '產品A'、'產品B'、'產品C',添加陰影效果和圓角邊框
plt.legend(['產品A', '產品B', '產品C'], shadow=True, fancybox=True)# 顯示繪制好的圖表
plt.show()

?七、案例五:不同行業的平均工資(進階版)


# 導入 matplotlib 庫中的 pyplot 模塊,該模塊提供了類似于 MATLAB 的繪圖接口,用于創建各種圖表
import matplotlib.pyplot as plt
# 導入 pandas 庫,它是一個強大的數據處理和分析工具,常用于讀取和處理結構化數據
import pandas as pd# 創建一個新的圖形窗口,設置窗口標題為 '2021年各行業城鎮單位就業人員年平均工資'
# 圖形的大小為 12 英寸寬,9 英寸高,背景顏色設置為白色
plt.figure(num='2021年各行業城鎮單位就業人員年平均工資', figsize=(12, 9), facecolor='w')# 設置 matplotlib 的字體為黑體,這樣可以正確顯示中文
plt.rcParams['font.sans-serif'] = ['SimHei']# 使用 pandas 的 read_excel 函數讀取 Excel 文件 '不同行業城鎮單位就業人員年平均工資.xlsx'
# 并將文件中的數據存儲在 DataFrame 對象 df 中
df = pd.read_excel('不同行業城鎮單位就業人員年平均工資.xlsx')# 從 DataFrame 對象 df 中提取 '行業' 列的數據,存儲在變量 hy 中
hy = df['行業']
# 從 DataFrame 對象 df 中提取 '2021年' 列的數據,存儲在變量 yuan 中
yuan = df['2021年']# 為圖表設置標題,標題內容為 '2021年各行業城鎮單位就業人員年平均工資'
# loc='center' 表示標題居中顯示
plt.title('2021年各行業城鎮單位就業人員年平均工資', loc='center')# 取消 x 軸標簽的設置,注釋掉的代碼原本是打算設置 x 軸標簽為 "行業"
# plt.xlabel("行業")# 設置 y 軸的標簽為 "單位(元)"
plt.ylabel("單位(元)")# 在圖表中添加網格線,方便查看數據點的位置和數值
plt.grid()# 繪制一條水平參考線,y 的位置為所有行業 2021 年平均工資的平均值
# 這里假設數據有 19 個行業,linestyle=':' 表示參考線的樣式為虛線
plt.axhline(y=sum(yuan)/19, linestyle=':')# 設置 x 軸刻度標簽的屬性
# rotation=290 表示將刻度標簽逆時針旋轉 290 度,近似垂直顯示
# fontsize=10 表示將刻度標簽的字體大小設置為 10
# 注釋掉的 va='center' 原本是想讓標簽垂直居中
plt.xticks(rotation=290,fontsize=10,# va='center'
)# 調整子圖的布局,增加底部的邊距為 0.25,防止 x 軸標簽與圖表底部重疊
plt.subplots_adjust(bottom=0.25)# 使用 zip 函數將行業名稱和對應的 2021 年平均工資組合成元組
# 遍歷這些元組,在每個數據點的位置添加文本標簽
for a, b in zip(hy, yuan):# 在坐標 (a, b) 處添加文本標簽,標簽內容為該行業 2021 年平均工資,格式為 'X 元'# ha='right' 表示文本水平右對齊,va='bottom' 表示文本垂直底部對齊plt.text(a, b, '%d元' % b, ha='right', va='bottom')# 繪制折線圖,x 軸為行業名稱,y 軸為 2021 年各行業平均工資
# 'r-D' 表示線條顏色為紅色,樣式為虛線,數據點用菱形標記
plt.plot(hy, yuan, 'r-D')# 為圖表添加圖例,圖例中顯示 '平均值參考線' 和 '各行業的評價工資'(這里可能存在拼寫錯誤,應為 '各行業的平均工資')
# loc=1 表示圖例顯示在右上角,shadow=True 為圖例添加陰影效果,fancybox=True 為圖例添加圓角邊框
plt.legend(('平均值參考線', '各行業的評價工資'), loc=1, shadow=True, fancybox=True)# 將繪制好的圖表保存為名為 '2021年各行業城鎮單位就業人員年平均工資.png' 的圖片文件
plt.savefig('2021年各行業城鎮單位就業人員年平均工資.png')# 顯示繪制好的圖表
plt.show()

?

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

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

相關文章

ubuntu 20.04 安裝源碼編譯 ros humble過程

公司要兼容ros1還需要ros2 這個時候不得不使用ubuntu20.04 安裝 humble 但實際上在20.04上安裝humble是需要在源碼編譯的。 根據這個帖子 https://blog.csdn.net/m0_62353836/article/details/129730981 重寫一份,以應對無法下載的問題 系統配置 #檢查是否為UTF-8編碼,是則跳…

CVPR‘25 SOTA——GoalFlow論文精讀

1)第一遍___粗讀 Q: 這篇論文試圖解決什么問題? A: 這篇論文提出了一個名為 GoalFlow 的端到端自動駕駛方法,旨在解決自動駕駛場景中高質量多模態軌跡生成的問題。具體而言,它試圖解決以下問題: 軌跡選擇的復雜性&am…

關于 CSDN的C知道功能模塊 的詳細解析,包括 新增的AI搜索(可選深度思考) 和 智能體功能 的具體說明及對比分析

以下是關于 CSDN的C知道功能模塊 的詳細解析,包括 新增的AI搜索(可選深度思考) 和 智能體功能 的具體說明及對比分析: 一、C知道核心功能模塊詳解(基礎功能) (參考前文內容,此處略…

forms實現快讀閱讀器

forms實現快讀閱讀器 主要功能包括: ??1.文本自動分塊顯示??:按設定的速度逐詞顯示文本內容。 ??2.閱讀控制??:開始/停止按鈕以及回車鍵控制。 ??3.界面自定義??:包括字體、顏色(前景色和背景色&#xff…

PowerBI 條形圖顯示數值和百分比

數據表: 三個度量值 銷售額 VAR Sales SUM(銷量表[銷售量]) RETURNIF(ISBLANK(sales), 0, sales) //希望Y軸顯示所有產品(沒有記錄顯示0)就加這個代碼,不希望顯示就不加//注意, 因為Y軸顯示的產品,會被篩選,所以用ALLSELECTED來獲取當前篩…

python: audioFlux XXCC 提取梅爾頻率倒譜系數 MFCC

承上一篇:python:audioFlux 使用教程 XXCC: 倒譜系數,支持所有頻譜類型. 可以提取梅爾頻率倒譜系數(MFCC) Cepstrum coefficients, supports all spectrum types. 以下是使用 audioflux 庫中 XXCC 類計算倒譜系數…

為 docker 拉取鏡像配置代理

為 Docker 配置代理,有 兩個層面 的操作:(1) Docker 守護進程(用于拉取鏡像等操作),(2) Docker 容器內部(容器內應用的網絡流量)。 我們這篇文章著重于前者,以下是詳細步驟&#xff…

最新的es版本忘記密碼,重置密碼

剛剛安裝了最新的es版本,就忘了密碼,怎么重置密碼呢? 一、進入es的斌目錄 #進入es文件/bin 目錄 ./elasticsearch-reset-password -u elastic 二 、輸入對應的密碼 然后再次訪問 我的是去掉了ssl的訪問 三、如果報錯:解決 [main] WARN

cursor如何集成MCP服務

本文主要介紹 Cursor IDE 是如何通過 Model Context Protocol (MCP) 服務來增強其功能的。本文將重點介紹兩個核心 MCP 服務的集成:GitHub MCP 服務和 Filesystem MCP 服務。 MCP 服務簡介 MCP(Model Context Protocol)是一個允許 IDE 與各…

Linux LED驅動(gpio子系統)

0. gpio子系統 gpio子系統是linux內核當中用于管理GPIO資源的一套系統,它提供了很多GPIO相關的API接口,驅動程序中使用GPIO之前需要向gpio子系統申請。 gpio子系統的主要目的就是方便驅動開發者使用gpio,驅動開發者在設備樹中添加gpio相關信息…

go中new和make有什么異同?

相同點:都是給變量分配內存 不同點: 作用類型不同。new通常給int、string、數組類型的變量分配內存,而make通常給slice、map、channel分配內存。返回值類型不同。new返回指向變量的指針,make返回的是變量本身new分配內存空間后&…

C/C++基礎知識點

隨著工作中瑣事越來越多,靜下來好好敲代碼的時間越來越少,基礎知識雖然簡單,但常看常新,并記錄下來共勉。 一、基礎知識點 1. 內存區域中數據管理 在C和C中,內存分為多個區域,每個區域負責存儲不同類型的…

消息中間件kafka,rabbitMQ

在分布式系統中,消息中間件是實現不同組件之間異步通信的關鍵技術。Kafka 和 RabbitMQ 是兩個非常流行的消息中間件系統,它們各自有著不同的特點和應用場景。下面將分別介紹 Kafka 和 RabbitMQ,并討論它們在消息隊列中的使用。 一、Kafka (Apache Kafka) 主要特點: 高吞吐…

2k1000LA , 調試串口改成通信串口, uart.

客戶的問題解決了,但是 調試串口 改成通信串口的問題,并沒有解決,我走的其他的路徑。 先準備一些資料。 以備以后使用。 網上的資料。 總結: 實際上 有幾種思路了。 1 就是更改 設備樹的 chosen 節點, 瑞芯微又單獨…

springboot集成spring-cloud-context手動刷新并讀取更新后的配置文件

背景 springboot單體項目在運行過程需要刷新springboot配置文件值,比如某個接口限流閾值,新增某個賬戶等場景。分布式設計的可以直接引入一些持久化中間件比如redis等,也可以用相關配置中心中間件如nacos等。處于成本等場景單體項目可以考慮①…

proteus8.17 環境配置

Proteus介紹 Proteus 8.17 是一款功能強大的電子設計自動化(EDA)軟件,廣泛應用于電子電路設計、仿真和分析。以下是其主要特點和新功能: ### 主要功能 - **電路仿真**:支持數字和模擬電路的仿真,包括靜態…

手機端可部署的開源大模型; 通義千問2.5訓練和推理需要的內存和外存

手機端可部署的開源大模型 目錄 手機端可部署的開源大模型Qwen2.5 0.5B 7b 推理采用手機內存需要多少Qwen2.5 0.5B不同量化精度下的內存需求Qwen2.5 7B不同量化精度下的內存需求通義千問2.5訓練和推理需要的內存和外存推理階段1. Qwen2.5 - 7B2. Qwen2.5 - 14B3. Qwen2.5 - 72B…

【uniapp-兼容性處理】swiper在iOS上偶發出現后幾張圖片白屏情況

【日期】2025-04-14 【問題】 swiper在iOS上偶發出現后幾張圖片白屏情況 swiper內部的幾個swiper-item垂直排列,各自進行滾動,樣式方面兼容性出現問題 【原因】: 原代碼:(不應在swiper-item添加style屬性&#xf…

SpringBoot連接MQTT客戶端

引入依賴 <dependency><groupId>org.eclipse.paho</groupId><artifactId>org.eclipse.paho.client.mqttv3</artifactId><version>1.2.2</version> </dependency> 啟動類 SpringBootApplication public class AxiosDemoApplic…

HTML:網頁的骨架 — 入門詳解教程

HTML&#xff1a;網頁的骨架 — 入門詳解教程 HTML&#xff08;HyperText Markup Language&#xff0c;超文本標記語言&#xff09;是構建網頁的基礎語言&#xff0c;負責定義網頁的結構和內容。無論是簡單的個人博客&#xff0c;還是復雜的企業網站&#xff0c;HTML都是不可或…