使用python?matplotlib畫折線圖實(shí)例代碼
matplotlib簡(jiǎn)介
matplotlib 是python最著名的繪圖庫(kù),它提供了一整套和matlab相似的命令A(yù)PI,十分適合交互式地行制圖。而且也可以方便地將它作為繪圖控件,嵌入GUI應(yīng)用程序中。
它的文檔相當(dāng)完備,并且Gallery頁(yè)面中有上百幅縮略圖,打開之后都有源程序。因此如果你需要繪制某種類型的圖,只需要在這個(gè)頁(yè)面中瀏覽/復(fù)制/粘貼一下,基本上都能搞定。
在Linux下比較著名的數(shù)據(jù)圖工具還有g(shù)nuplot,這個(gè)是免費(fèi)的,Python有一個(gè)包可以調(diào)用gnuplot,但是語(yǔ)法比較不習(xí)慣,而且畫圖質(zhì)量不高。
而 Matplotlib則比較強(qiáng):Matlab的語(yǔ)法、python語(yǔ)言、latex的畫圖質(zhì)量(還可以使用內(nèi)嵌的latex引擎繪制的數(shù)學(xué)公式)。
1、畫折線圖【一條示例】
import matplotlib.pyplot as plt
import numpy as np
x_axis_data = [1,2,3,4,5,6,7] #x
y_axis_data = [68,69,79,71,80,70,66] #y
plt.plot(x_axis_data, y_axis_data, 'b*--', alpha=0.5, linewidth=1, label='acc')#'bo-'表示藍(lán)色實(shí)線,數(shù)據(jù)點(diǎn)實(shí)心原點(diǎn)標(biāo)注
## plot中參數(shù)的含義分別是橫軸值,縱軸值,線的形狀('s'方塊,'o'實(shí)心圓點(diǎn),'*'五角星 ...,顏色,透明度,線的寬度和標(biāo)簽 ,
plt.legend() #顯示上面的label
plt.xlabel('time') #x_label
plt.ylabel('number')#y_label
#plt.ylim(-1,1)#僅設(shè)置y軸坐標(biāo)范圍
plt.show()
運(yùn)行,得到:

2、畫折線圖帶數(shù)據(jù)標(biāo)簽
在畫線代碼之前加入這句代碼:
for x, y in zip(x_axis_data, y_axis_data):
plt.text(x, y+0.3, '%.00f' % y, ha='center', va='bottom', fontsize=7.5)#y_axis_data1加標(biāo)簽數(shù)據(jù)
總體代碼如下:
import matplotlib.pyplot as plt
import numpy as np
x_axis_data = [1,2,3,4,5,6,7] #x
y_axis_data = [68,69,79,71,80,70,66] #y
for x, y in zip(x_axis_data, y_axis_data):
plt.text(x, y+0.3, '%.00f' % y, ha='center', va='bottom', fontsize=7.5)#y_axis_data1加標(biāo)簽數(shù)據(jù)
plt.plot(x_axis_data, y_axis_data, 'b*--', alpha=0.5, linewidth=1, label='acc')#'bo-'表示藍(lán)色實(shí)線,數(shù)據(jù)點(diǎn)實(shí)心原點(diǎn)標(biāo)注
## plot中參數(shù)的含義分別是橫軸值,縱軸值,線的形狀('s'方塊,'o'實(shí)心圓點(diǎn),'*'五角星 ...,顏色,透明度,線的寬度和標(biāo)簽 ,
plt.legend() #顯示上面的label
plt.xlabel('time') #x_label
plt.ylabel('number')#y_label
#plt.ylim(-1,1)#僅設(shè)置y軸坐標(biāo)范圍
plt.show()

3、畫多條折線圖:
import matplotlib.pyplot as plt
import numpy as np
#epoch,acc,loss,val_acc,val_loss
x_axis_data = [1,2,3,4,5,6,7]
y_axis_data1 = [68.72,69.17,69.26,69.63,69.35,70.3,66.8]
y_axis_data2 = [71,73,52,66,74,82,71]
y_axis_data3 = [82,83,82,76,84,92,81]
#畫圖
plt.plot(x_axis_data, y_axis_data1, 'b*--', alpha=0.5, linewidth=1, label='acc')#'
plt.plot(x_axis_data, y_axis_data2, 'rs--', alpha=0.5, linewidth=1, label='acc')
plt.plot(x_axis_data, y_axis_data3, 'go--', alpha=0.5, linewidth=1, label='acc')
plt.legend() #顯示上面的label
plt.xlabel('time')
plt.ylabel('number')#accuracy
#plt.ylim(-1,1)#僅設(shè)置y軸坐標(biāo)范圍
plt.show()
運(yùn)行,得到:

4、畫多條折線圖分別帶數(shù)據(jù)標(biāo)簽:
import matplotlib.pyplot as plt
import numpy as np
#epoch,acc,loss,val_acc,val_loss
x_axis_data = [1,2,3,4,5,6,7]
y_axis_data1 = [68.72,69.17,69.26,69.63,69.35,70.3,66.8]
y_axis_data2 = [71,73,52,66,74,82,71]
y_axis_data3 = [82,83,82,76,84,92,81]
#畫圖
plt.plot(x_axis_data, y_axis_data1, 'b*--', alpha=0.5, linewidth=1, label='acc')#'
plt.plot(x_axis_data, y_axis_data2, 'rs--', alpha=0.5, linewidth=1, label='acc')
plt.plot(x_axis_data, y_axis_data3, 'go--', alpha=0.5, linewidth=1, label='acc')
## 設(shè)置數(shù)據(jù)標(biāo)簽位置及大小
for a, b in zip(x_axis_data, y_axis_data1):
plt.text(a, b, str(b), ha='center', va='bottom', fontsize=8) # ha='center', va='top'
for a, b1 in zip(x_axis_data, y_axis_data2):
plt.text(a, b1, str(b1), ha='center', va='bottom', fontsize=8)
for a, b2 in zip(x_axis_data, y_axis_data3):
plt.text(a, b2, str(b2), ha='center', va='bottom', fontsize=8)
plt.legend() #顯示上面的label
plt.xlabel('time')
plt.ylabel('number')#accuracy
#plt.ylim(-1,1)#僅設(shè)置y軸坐標(biāo)范圍
plt.show()
運(yùn)行,得到:

附上形狀,可與顏色搭配:
‘s’ : 方塊狀
‘o’ : 實(shí)心圓
‘^’ : 正三角形
‘v’ : 反正三角形
‘+’ : 加好
‘*’ : 星號(hào)
‘x’ : x號(hào)
‘p’ : 五角星
‘1’ : 三腳架標(biāo)記
‘2’ : 三腳架標(biāo)記
總結(jié)
到此這篇關(guān)于使用python matplotlib畫折線圖的文章就介紹到這了,更多相關(guān)python matplotlib畫折線圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)區(qū)間調(diào)度算法
區(qū)間調(diào)度算法是一種在給定的一組任務(wù)中,選擇盡可能多的相互不沖突的任務(wù)的算法,本文主要介紹了如何使用Python實(shí)現(xiàn)區(qū)間調(diào)度算法,有需要的可以參考下2024-10-10
使用Python中的Argparse實(shí)現(xiàn)將列表作為命令行參數(shù)傳遞
Argparse?是一個(gè)?Python?庫(kù),用于以用戶友好的方式解析命令行參數(shù),本文我們將討論如何使用?Python?中的?Argparse?庫(kù)將列表作為命令行參數(shù)傳遞,感興趣的可以了解下2023-08-08
pycharm進(jìn)入時(shí)每次都是insert模式的解決方式
這篇文章主要介紹了pycharm進(jìn)入時(shí)每次都是insert模式的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
Django項(xiàng)目中動(dòng)態(tài)設(shè)置靜態(tài)文件路徑的全過(guò)程
這篇文章主要給大家介紹了關(guān)于Django項(xiàng)目中動(dòng)態(tài)設(shè)置靜態(tài)文件路徑的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-02-02
如何將自己的python庫(kù)打包成wheel文件并上傳到pypi
這篇文章主要介紹了如何將自己的python庫(kù)打包成wheel文件并上傳到pypi,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
python?數(shù)據(jù)挖掘算法的過(guò)程詳解
這篇文章主要介紹了python?數(shù)據(jù)挖掘算法,首先給大家介紹了數(shù)據(jù)挖掘的過(guò)程,基于sklearn主要的算法模型講解,給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02
python cv2截取不規(guī)則區(qū)域圖片實(shí)例
今天小編就為大家分享一篇python cv2截取不規(guī)則區(qū)域圖片實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
使用Python讀取二進(jìn)制文件的實(shí)例講解
今天小編就為大家分享一篇使用Python讀取二進(jìn)制文件的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
python Tkinter版學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python Tkinter版學(xué)生管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02

