python?用matplotlib繪制折線圖詳情
復(fù)習(xí)回顧:
眾所周知,matplotlib 是一款功能強(qiáng)大開源的數(shù)據(jù)可視化模塊,憑借著強(qiáng)大的擴(kuò)展性構(gòu)建出更高級(jí)別的繪圖工具接口如seaborn、ggplot。我們來看看往期學(xué)習(xí)章節(jié)內(nèi)容概述吧~
- matplotlib 模塊基礎(chǔ)知識(shí):對(duì)matplotlib模塊具有便利的交互新創(chuàng)建圖表、多種圖表定制以及強(qiáng)大的可擴(kuò)展性,matplotlib可滿足不同用戶的使用,初次體驗(yàn)繪制圖表功能
- matplotlib 模塊底層原理:matplotlib 模塊包含腳本層、美工層及后端層,對(duì)各個(gè)層相關(guān)提供的操作進(jìn)行學(xué)習(xí)
在 matplotlib 官網(wǎng)教程中,可以繪制諸如折線圖、柱狀圖、餅圖等常規(guī)圖外,還有可以繪制動(dòng)態(tài)圖、散點(diǎn)圖、等高線圖、帽子圖、多個(gè)子圖等
接下來,我們將繼續(xù)學(xué)習(xí)matplotlib 圖表繪制具體的功能實(shí)操,掌握針對(duì)不同圖表的繪制
1. 折線圖概述
1.1什么是折線圖?
- 折線圖是在坐標(biāo)中通過線條升降的方式展示隨著某種變化而變化的連續(xù)性數(shù)據(jù)
- 通過折線的起伏表示數(shù)據(jù)的增減變化的情況
- 折線圖可以拆分為動(dòng)態(tài)折線圖、依存關(guān)系折線圖和次數(shù)分布折線圖
1.2折線圖使用場(chǎng)景
折線圖自身的線條的變化,可以在圖表中清晰讀取到數(shù)據(jù)變化情況,可以運(yùn)用的場(chǎng)景特點(diǎn)如下
- 描繪統(tǒng)計(jì)事項(xiàng)總體指標(biāo)的動(dòng)態(tài)
- 研究對(duì)象間的依存關(guān)系
- 總體中各個(gè)部分的分配情況
- 適合大量數(shù)據(jù)展示其趨勢(shì)變化
1.3繪制折線圖步驟
- 導(dǎo)入
matplotlib.pyplot
模塊 - 準(zhǔn)備數(shù)據(jù),可以使用
numpy/pandas
整理數(shù)據(jù) - 調(diào)用
pyplot.plot()
繪制折線圖
1.4案例展示
接下來我們使用折線圖來展示從 10份 所有文章訪問量數(shù)據(jù)展示
所有的案例用到的數(shù)據(jù)如下:
import random x_data = ["10月{}日".format(i+1) for i in range(30)] y_view = [random.randint(50,200) for i in range(30)]
展示10月份數(shù)據(jù)折線圖:
import matplotlib.pyplot as plt import random plt.rcParams["font.sans-serif"]=['SimHei'] plt.rcParams["axes.unicode_minus"]=False x_data = ["10月{}日".format(i+1) for i in range(30)] y_view = [random.randint(50,200) for i in range(30)] plt.figure(figsize=(20,5),dpi=90) plt.plot(x_data,y_view) plt.xticks(rotation=45) plt.title("訪問量分析") plt.xlabel("日期") plt.ylabel("訪問量") plt.show()
2. 折線2D屬性
2.1linestyle:折線樣式
屬性值 | 說明 |
---|---|
"-" 、"solid" | 默認(rèn)實(shí)線顯示 |
"--"、"dashed" | 虛線 |
"-." "dashdot" | 點(diǎn)劃線 |
":"、"dotted" | 虛線 |
"None" """" | 空 |
2.2color:折線顏色
顏色簡(jiǎn)稱:
屬性值 | 說明 | 屬性值 | 說明 |
---|---|---|---|
"b"/"bule" | 藍(lán)色 | "m"/"magenta" | 品紅 |
"g" /"green" | 綠色 | "y"/"yellow" | 黃色 |
"r"/"red" | 紅色 | "k"/"black" | 黑色 |
"c"/"cyan" | 青色 | "w"/"white" | 白色 |
rgb
- 格式形式:(r,g,b) 或者(r,g,b,a)
- 取值范圍:r,g,b,a 取值范圍在[0,1]之間
- [0,1]之間的浮點(diǎn)數(shù)的字符串形式,0表示黑色,1表示白色
2.3marker:坐標(biāo)值標(biāo)記
- marker 標(biāo)記物通常在折線圖plot、散點(diǎn)圖scatter和誤差圖errorbar上應(yīng)用
- marker 提供多達(dá)40個(gè)標(biāo)記的樣式可供選擇,具體詳情看見marker官方說明
- marker 在圖表中常用的有如下:
屬性值 | 說明 | 屬性值 | 說明 |
---|---|---|---|
"o" | ??圓圈標(biāo)記 | "8" | 八邊形 |
"v" | ??倒三角標(biāo)記 | "s" | ??正方形標(biāo)記 |
"^" | ??正三角標(biāo)記 | "*" | ?星號(hào) |
"<" | ??左三角標(biāo)記 | "+" | ?加號(hào) |
">" | ??右三角標(biāo)記 | "x" | X星星 |
"1" | 向下Y標(biāo)記 | "D" | ??鉆石標(biāo)記 |
"2" | 向上Y標(biāo)記 | " | " |
"3" | 向左Y標(biāo)記 | "_" | _水平線標(biāo)記 |
"4" | 向右Y標(biāo)記 | "p" | ?五角星標(biāo)記 |
- markeredgecolor:標(biāo)記邊界顏色
- markeredgewidth:標(biāo)記寬度
- markfacecorlor:標(biāo)記填充色
- markersize:標(biāo)記大小
2.4fillstyle:標(biāo)記填充方法
屬性值 | 說明 |
---|---|
"full" | 整個(gè)標(biāo)記 |
"left" | 左邊標(biāo)記一半 |
"right" | 右邊標(biāo)記一半 |
"bottom" | 底部標(biāo)記一半 |
"top" | 頂部標(biāo)記一半 |
"none" | 無填充 |
2.5linewidth(lw): 直線寬度
對(duì)第一節(jié)案例添加直線屬性:虛線表示,坐標(biāo)用綠色左半填充圈標(biāo)記
# 直線屬性 plt.plot(x_data,y_view,linestyle="--" ,marker="o",markeredgecolor="g",fillstyle="left")
更多屬性:
在matplotlib官網(wǎng)對(duì)直線2D屬性有更多的介紹
3. 坐標(biāo)管理
3.1坐標(biāo)軸名字設(shè)置
- 設(shè)置X軸名稱:pyplot.xlabel(str)
- 設(shè)置y軸名稱:pyplot.ylabel(str)
3.2坐標(biāo)軸刻度設(shè)置
- x軸坐標(biāo)刻度設(shè)置:pyplot.xticks(ticks=[],rotation)
- y軸坐標(biāo)刻度設(shè)置:pyplot.yticks(ticks=[],rotation)
參數(shù)說明:
- ticks:列表類型,表示x軸范圍
- rotation:翻轉(zhuǎn)角度
3.3坐標(biāo)軸位置設(shè)置
- 坐標(biāo)軸位置設(shè)置需要通過pyplot.gca()先獲取當(dāng)前的Axes
- 然后調(diào)用ax.spines[].set_position()設(shè)置位置
- ax.spines['bottom'].set_position(('axes',0.5)) 表示將x軸設(shè)置在y軸50%處
3.4指定坐標(biāo)值標(biāo)注
pyplot.annotate()
展示指定坐標(biāo)點(diǎn)的(x,y)值
常用接口參數(shù)說明:
參數(shù) | 說明 |
---|---|
txt | 展示的文本 |
xy | 注釋的(x,y) |
xytext | xy展示的文本 |
color | 展示的文本顏色 |
繼續(xù)改造第一節(jié)案例:標(biāo)記出最大訪問,y軸移到x軸中心
max_id = np.argmax(y_view) show_max = '['+str(x_data[max_id])+','+str(y_view[max_id])+']' plt.figure(figsize=(20,5),dpi=90) ax= plt.gca() ax.spines["left"].set_position(('axes',0.5)) plt.plot(x_data,y_view,linestyle="--",marker="o",markeredgecolor="g",fillstyle="left") plt.xticks(ticks=np.arange(0,30),rotation=60) plt.annotate(show_max, xy=(x_data[max_id],y_view[max_id] ), xytext=(x_data[max_id],y_view[max_id]), color='r')
4. 多條折線展示圖
在一個(gè)圖表中,我們可以多次調(diào)用plot()繪制多條折線展示在同一個(gè)表格中
```python star_view = [random.randint(100,200) for i in range(30)] plt.plot(x_data,y_view,linestyle="--",marker="o",markeredgecolor="g",fillstyle="left") plt.plot(x_data,star_view,linestyle="-",marker="s",markeredgecolor="r",fillstyle="right") ```
5. 圖列管理
當(dāng)一個(gè)圖表中存在多個(gè)折線圖時(shí),我們需要使用圖例管理來對(duì)每個(gè)折線代表對(duì)象
- pyplot.legend(loc): 對(duì)圖表中折線進(jìn)行說明
- loc參數(shù)屬性值:
屬性 | 代碼 | 屬性 | 代碼 |
---|---|---|---|
'best' | 0 | 'right' | 5 |
'upper right' | 1 | 'center left' | 6 |
'upper left' | 2 | 'center right' | 7 |
'lower left' | 3 | 'lower center' | 8 |
'lower right' | 4 | 'upper center' | 9 |
'center' | 10 |
label屬性,注釋每條折線的對(duì)象
plt.plot(x_data,y_view,linestyle="--",marker="o",markeredgecolor="g",fillstyle="left",label="all") plt.plot(x_data,star_view,linestyle="-",marker="s",markeredgecolor="r",fillstyle="right",label="star") plt.legend()
總結(jié):
本文?我們對(duì)matplotlib 模塊 折線圖plot()相關(guān)方法和屬性進(jìn)行,大家在平時(shí)工作中可以多多實(shí)踐,折線圖還是用的比較多的
到此這篇關(guān)于python 用matplotlib繪制折線圖詳情的文章就介紹到這了,更多相關(guān)python matplotlib繪制折線圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python加載數(shù)據(jù)的5種不同方式(收藏)
這篇文章主要介紹了Python加載數(shù)據(jù)的5種不同方式(收藏),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11python中自帶的三個(gè)裝飾器的實(shí)現(xiàn)
這篇文章主要介紹了python中自帶的三個(gè)裝飾器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11Python 幾行代碼即可實(shí)現(xiàn)人臉識(shí)別
Python中實(shí)現(xiàn)人臉識(shí)別功能有多種方法,依賴于python膠水語言的特性,我們通過調(diào)用包可以快速準(zhǔn)確的達(dá)成這一目的,本文給大家分享使用Python實(shí)現(xiàn)簡(jiǎn)單的人臉識(shí)別功能的操作步驟,感興趣的朋友一起看看吧2022-02-02Pyinstaller打包Scrapy項(xiàng)目的實(shí)現(xiàn)步驟
這篇文章主要介紹了Pyinstaller打包Scrapy項(xiàng)目的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Python將內(nèi)容進(jìn)行base64編碼與解碼實(shí)現(xiàn)
本文主要介紹了Python將內(nèi)容進(jìn)行base64編碼與解碼實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Python數(shù)據(jù)分析之PMI數(shù)據(jù)圖形展示
這篇文章主要介紹了Python數(shù)據(jù)分析之PMI數(shù)據(jù)圖形展示,文章介紹了簡(jiǎn)單的python爬蟲,并使用numpy進(jìn)行了簡(jiǎn)單的數(shù)據(jù)處理,最終使用?matplotlib?進(jìn)行圖形繪制,實(shí)現(xiàn)了直觀的方式展示制造業(yè)和非制造業(yè)指數(shù)圖形,需要的朋友可以參考一下2022-05-05