close

單一變數畫圖最常使用的 plot這個函式

下面這個例子是個人在工作中的一些經驗,某些常用的參數可以先宣告一個名稱,

爾後要修改 就不需要進去程式碼中尋找,甚至有時可以設定判斷式讓反覆作業可以更加聰明,減少人為錯誤

雖然整個程式碼會變冗長,但對於之後操作上會方便許多

 

----往下複製-----

import matplotlib.pyplot as plt
import numpy as np
####Test data
x=np.linspace(-3,3,50)
y1=3*x-3
y2=x**2

#####圖形
fig=plt.figure()
plt.plot(x,y1,'ro-',x,y2,'b-')

##### 名稱
file_name='Test plot.jpg'
figure_name='For test'###圖表名稱
x_name='Location(m)'
y_name='Amplitude(a.u)'
legend_name=['Linear','Non-Linear']
##### tick 設定
x_min=0
x_max=5
x_scale=0.5
y_min=0
y_max=15
y_scale=3
Grid_onoff=1
#####圖形內容參數執行
plt.title(figure_name,fontsize=20)
plt.xlabel(x_name,fontsize=16)
plt.ylabel(y_name,fontsize=16)
plt.legend(legend_name,fontsize=8)
plt.grid(Grid_onoff)
plt.axis([x_min,x_max,y_min,y_max])
plt.xticks(np.linspace(x_min,x_max,1+(x_max-x_min)/x_scale))
plt.yticks(np.linspace(y_min,y_max,1+(y_max-y_min)/y_scale))
plt.tick_params(direction='in',length=5,labelsize=12)
fig.savefig(file_name)

plt.show()

---------往上複製--------

此code碼 ,畫出的圖形如下:

 

以下說明各個code 碼

plt.title(figure_name,fontsize=20)

圖表名稱,位於圖表最上方,字型20
plt.xlabel(x_name,fontsize=16)
plt.ylabel(y_name,fontsize=16)

X及Y軸的名稱,字型8
plt.legend(legend_name,fontsize=8)

各資料在圖表上的名稱,位於圖表右上角

plt.grid(Grid_onoff)

格線是否顯示
plt.axis([x_min,x_max,y_min,y_max])

各軸要出線的區域
plt.xticks(np.linspace(x_min,x_max,1+(x_max-x_min)/x_scale))
plt.yticks(np.linspace(y_min,y_max,1+(y_max-y_min)/y_scale))

調整 X,Y軸 Scale
plt.tick_params(direction='in',length=5,labelsize=12)
調整X.Y Tickick的表示

fig.savefig(file_name)

plt.show()

這要注意的是,當我們要同時儲存及顯示所畫的圖

必須將save寫在前面,show 會將程式直接break。

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Mr.Onion 的頭像
    Mr.Onion

    Mr.Onion的部落格

    Mr.Onion 發表在 痞客邦 留言(0) 人氣()