日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

使用python?matplotlib畫折線圖實例代碼_python

作者:消滅BUG鴨 ? 更新時間: 2022-06-24 編程語言

matplotlib簡介

matplotlib 是python最著名的繪圖庫,它提供了一整套和matlab相似的命令API,十分適合交互式地行制圖。而且也可以方便地將它作為繪圖控件,嵌入GUI應用程序中。

它的文檔相當完備,并且Gallery頁面中有上百幅縮略圖,打開之后都有源程序。因此如果你需要繪制某種類型的圖,只需要在這個頁面中瀏覽/復制/粘貼一下,基本上都能搞定。

在Linux下比較著名的數據圖工具還有gnuplot,這個是免費的,Python有一個包可以調用gnuplot,但是語法比較不習慣,而且畫圖質量不高。

而 Matplotlib則比較強:Matlab的語法、python語言、latex的畫圖質量(還可以使用內嵌的latex引擎繪制的數學公式)。

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-'表示藍色實線,數據點實心原點標注
## plot中參數的含義分別是橫軸值,縱軸值,線的形狀('s'方塊,'o'實心圓點,'*'五角星   ...,顏色,透明度,線的寬度和標簽 ,

plt.legend()  #顯示上面的label
plt.xlabel('time') #x_label
plt.ylabel('number')#y_label
 
#plt.ylim(-1,1)#僅設置y軸坐標范圍
plt.show()

運行,得到:

2、畫折線圖帶數據標簽

在畫線代碼之前加入這句代碼:

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加標簽數據

總體代碼如下:

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加標簽數據
    
plt.plot(x_axis_data, y_axis_data, 'b*--', alpha=0.5, linewidth=1, label='acc')#'bo-'表示藍色實線,數據點實心原點標注
## plot中參數的含義分別是橫軸值,縱軸值,線的形狀('s'方塊,'o'實心圓點,'*'五角星   ...,顏色,透明度,線的寬度和標簽 ,

plt.legend()  #顯示上面的label
plt.xlabel('time') #x_label
plt.ylabel('number')#y_label
 
#plt.ylim(-1,1)#僅設置y軸坐標范圍
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)#僅設置y軸坐標范圍
plt.show()

運行,得到:

4、畫多條折線圖分別帶數據標簽:

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')

## 設置數據標簽位置及大小
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)#僅設置y軸坐標范圍
plt.show()

運行,得到:

附上形狀,可與顏色搭配:

‘s’ : 方塊狀
‘o’ : 實心圓
‘^’ : 正三角形
‘v’ : 反正三角形
‘+’ : 加好
‘*’ : 星號
‘x’ : x號
‘p’ : 五角星
‘1’ : 三腳架標記
‘2’ : 三腳架標記

總結

原文鏈接:https://blog.csdn.net/qq_49641239/article/details/118784767

欄目分類
最近更新