一、基礎命令
在我們使用深度學習時,肯定會用到繪圖命令,繪制loss與val_loss等等,以此查看模型的效果,
plt.plot(x,y,lw=,ls=,c=, alpha=, label=)
x:x坐標的資料
y:y坐標的資料
lw:指定線條寬度
ls:指定線條樣式,ls='-'為實線,ls='--'為虛斷線,ls='-.'為點虛線,ls=':'為虛線
c:指定線條顏色,c='r'為紅色,c='k'為黑色,c='y'為黃色
alpha:指定線條透明度,值越小越透明
label:指定線條的含義
代碼示例:
#匯入庫 import matplotlib.pyplot as plt import numpy as np #設定畫布,dpi越大圖越清晰,繪圖時間越久 fig=plt.figure(figsize=(4, 4), dpi=300) #匯入資料 x=list(np.arange(1, 21)) y=np.random.randn(20) #繪圖命令 plt.plot(x, y, lw=4, ls='-', c='b', alpha=0.1) plt.plot() #show出圖形 plt.show() #保存圖片 fig.savefig("畫布")
繪圖結果:
二、根據Excel資料繪圖
在python中,有一個專門進行資料處理的庫包叫做pandas
1 # 導包 2 import pandas as pd 3 # 讀取excel檔案 4 pd.read_excel('檔案所在路徑')
提取excel中某一列資料:filename['列名'],回傳值是一個串列,
取得excel中我們想要的資料后,下一步就是繪制:
1 ... 2 # 第一步繪制畫布 3 fig=plt.figure(figsize=(7, 4), dpi=200) 4 # 第二步添加繪圖區. 5 # subplot命令是在畫布上添加一個繪圖區,括號里的內容轉述為漢字為:“創建一個一行一列的繪圖區(一行一列就只有一個繪圖區),ax1是第一個繪圖區,facecolor用來設定畫布背景顏色,默認為白色 6 ax1 = fig.add_subplot(111, facecolor='green')
如果要創建一個兩行兩列(或者其他維度)的子圖區,分別為ax1,ax2,ax3,ax4:
1 ax1=fig.add_subplot(221) 2 ax2=fig.add_subplot(222) 3 ax3=fig.add_subplot(223) 4 ax4=fig.add_subplot(224)
效果如下:
三、合并一幅圖的x(或y)坐標軸以及添加圖例legend()
實作上圖的效果,重點在于ax2=ax1.twinx() ,ax2和ax1共用x軸,但是ax1使用左側y軸,ax2使用右側y軸:
1 2 fig=plt.figure(figsize=(7,4),dpi=200) # 新建畫布 3 ax1=fig.add_subplot(111) # 設定繪圖區 4 line1,=ax1.plot(times,temps,'r:',lw=1,label='氣溫') # 創建折線 5 bar1 =ax1.bar(times,rains,color='b',label='降水量') # 創建條狀 6 ax2=ax1.twinx() # 設定共用x軸 7 line2,=ax2.plot(times,pressures,'k-',lw=1.2,label='氣壓') 8 9 # legend用來設定圖例,還可以添加引數ncol='',該引數用來設定圖例的列數,用于對齊 10 plt.legend((line1,bar1,line2),('氣溫','降水量','氣壓'),loc='center left',frameon=False,framealpha=0.5) 11 ax1.set_xlabel('時間 \ h') # 設定x軸 12 ax1.set_ylabel('氣溫(℃)\降水量(mm)') # 設定左側y軸 13 ax2.set_ylabel('氣壓(hPa)') # 設定右側y軸 14 plt.title("----") # 設定圖的名稱 15 plt.show()
四、調節字體樣式
通過字典的方式調節,在字典中存盤需要修改的的引數名稱和指定值大小,還可以存放更多引數:
1 font={'size':30,'color':'red'} 2 ax.set_xlabel('--',fontdict=font) 3 ax.set_ylabel('--',fontdict=font)
五、繪制網格線
ax.grid() # 開啟x和y軸的網格 ax.grid(ls='--') # 開啟x和y軸的虛線網格 ax.grid(True,axis='x') # 開啟x軸的網格 ax.grid(True,axis='y') # 開啟y軸的網格
六、合并兩幅圖的坐標軸
按照以下方式設定畫布:
1 fig,((ax1),(ax2))=plt.subplots(2,1,figsize=(5,5),dpi=200,sharex='all') 2 fig.subplots_adjust(hspace=0)
七、不常用的函式
1.ax.set_ylim()、ax.set_xlim()
在共享x(y)軸時,兩邊y(x)軸的零刻度是不一致的,xlim和ylim用來設定坐標軸的范圍,
2.set_minor_locator()、set_major_locator()
set_minor_locator用來在主刻度的基礎上設定或修改副刻度的大小,set_major_locator用來修改主刻度的單位顯示,使用前,必須引入庫包:
import matplotlib.ticker as ticker
舉例說明:
(1)此處設定副刻度為0.1個單位,
1 ax1.yaxis.set_minor_locator(ticker.MultipleLocator(0.1))
(2) 將右側主刻度設定為每10個單位顯示,
ax2.yaxis.set_major_locator(ticker.MultipleLocator(10))
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/529868.html
標籤:其他
上一篇:重溫Python基礎——操作串列
下一篇:淺談PHP設計模式的門面模式
