溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python如何設置Pyplot的動態(tài)rc參數、繪圖的填充

發(fā)布時間:2022-06-13 13:52:10 來源:億速云 閱讀:189 作者:iii 欄目:開發(fā)技術

今天小編給大家分享一下python如何設置Pyplot的動態(tài)rc參數、繪圖的填充的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

Matplotlib配置了配色方案和默認設置,主要用來準備用于發(fā)布的圖片。有兩種方式可以設置參數,即全局參數定制和rc設置方法。

查看matplotlib的rc參數:

import matplotlib as plt
print(plt.ra_params)

1.全局參數定制

Matplotlib的全局參數可以通過編輯配置文件設置

import matplotlib as plt
print(plt.matplotlib_fname)
#顯示當前用戶的配置文件目錄

查找到當前用戶的配置文件目錄,然后用編輯器打開,修改matplotlib文件,即可修改配置參數。

2.rc參數設置

使用Python編程修改rc參數,rc參數及其取值如下表1~3

表1 rc參數名稱及其取值

rc參數解釋取值
lines.linewidth線條寬度取0~10的數值,默認1.5
lines.linestyle線條樣式取“-”“--”“-.”“:”4種,默認為“-”
lines.marker線條上點的形狀可取“o”“D”等20種,默認為None
lines,markersize點的大小取0~10的數值,默認為1

表2 線條樣式lines.linestyle的取值 linestyle取值意義linestyle取值意義-實線-.點線--長虛線:短虛線

linestyle取值意義linestyle取值意義
-實線-.點線
--長虛線:短虛線

表3 lines.marker參數的取值

marker取值意義marker取值意義
'o'圓圈'.'
'D'菱形's'正方形
'h'六邊形1'*'星號
'H'六邊形2'd'小菱形
'-'水平線'v'一角朝下的三角形
'8'八邊形'<'一角朝左的三角形
'p'五邊形'>'一角朝右的三角形
','像素'^'一角朝上的三角形
'+'加號'|'豎線
'None''x'X

需要注意的是,由于默認的Pyplot字體并不支持中文符的顯示,因此需要通過設置font.sans-serif參數改變繪圖時的字體,使得圖形可以正常顯示中文。同時,由于更換字體后,會導致坐標軸中的部分字符無法顯示,因此需要同時更改axes.unicode_minus參數。

plt.rcParams['font.family'] = ['SimHei']      #用來顯示中文標簽
plt.rcParams['axes.unicode_minus'] = False   #用來正常顯示符號

如果需要在坐標軸上顯示時間,可以利用DateFormatter提供的功能進行設置,常用代碼如下:

from matplotlib.dates import DateFormatter
plt.gca().xaxis.set_major_formatter(DateFormatter('%y/%m/%d'))
#自動旋轉X軸的刻度,適應坐標軸
plt.gcf().autofmt_xdate()

除了設置線條的字體的rc參數外,還有設置文本、箱線圖、坐標軸、刻度、圖例、標記、圖片、圖像保存等rc參數。

例1.rc參數設置例1

import numpy as np
import matplotlib.pyplot as plt
fig,ax = plt.subplots()
#配置中文顯示
plt.rcParams['font.family'] = ['SimHei']      #用來顯示中文標簽
plt.rcParams['axes.unicode_minus'] = False   #用來正常顯示符號
def f(t):
    return np.cos(2*np.pi*t)
x1 = np.arange(0.0,4.0,0.5)
x2 = np.arange(0.0,4.0,0.01)
plt.figure(1)
plt.subplot(2,2,1)
plt.plot(x1,f(x1),'bo',x2,f(x2),'k')
plt.title('子圖1')
plt.subplot(2,2,2)
plt.plot(x2,f(x2),'r--')
plt.title('子圖2')
plt.show()

OUT:

python如何設置Pyplot的動態(tài)rc參數、繪圖的填充

例2.rc參數設置例2

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = 'o',label = 'one')
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = '+',label = 'two')
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = 'v',label = 'three')
ax.legend(loc = 'best')

OUT:

python如何設置Pyplot的動態(tài)rc參數、繪圖的填充

可以用set_xticks設置X軸刻度

例3.用set_xticks設置刻度

fig = plt.figure()
 
ax = fig.add_subplot(1,1,1)
 
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = 'o',label = 'one')
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = '+',label = 'two')
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = 'v',label = 'three')
ax.set_xticks([0,5,10,15,20,25,30,35])
ax.legend(loc = 'best')

OUT:

python如何設置Pyplot的動態(tài)rc參數、繪圖的填充

可以用set_xticklabels改變刻度,設置刻度的旋轉角度及字體等。

例4.用set_xticklabels改變刻度

fig = plt.figure()
 
ax = fig.add_subplot(1,1,1)
 
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = 'o',label = 'one')
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = '+',label = 'two')
ax.plot(np.random.randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = 'v',label = 'three')
ax.set_xticklabels(['x1','x2','x3','x4','x5'],rotation = 30,fontsize = 'large')
ax.legend(loc = 'best')

OUT:

python如何設置Pyplot的動態(tài)rc參數、繪圖的填充

其中,rotation參數表示X坐標標簽的旋轉角度;fontsize為字號,可以取值為“xx-small”“x-small”“small”“medium”“l(fā)arge”“x-large”“xx-large”“smaller”“None”。

3.繪圖的填充

3.1調用函數fill_between()實現曲線下面部分的填充

x = np.linspace(0,1,500)
y = np.sin(3*np.pi*x)*np.exp(-4*x)
fig,ax = plt.subplots()
plt.plot(x,y)
plt.fill_between(x,0,y,facecolor = 'green',alpha = 0.3)

python如何設置Pyplot的動態(tài)rc參數、繪圖的填充

其中,參數x表示整個X軸都覆蓋;0表示覆蓋的下限;y表示覆蓋的上限時y這條曲線,facecolor表示覆蓋區(qū)域的顏色;alpha表示覆蓋區(qū)域的透明度[0,1],其值越大,表示越不透明

3.2 部分區(qū)域填充

plt.fill_between(x[15:300],0,0.4,facecolor = 'green',alpha = 0.3)

python如何設置Pyplot的動態(tài)rc參數、繪圖的填充

3.3 兩條曲線之間的區(qū)域填充

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,1,500)
y1 = np.sin(3*np.pi*x)*np.exp(-4*x)
y2 = y1 + 0.2
plt.plot(x,y1,'b')
plt.plot(x,y2,'r')
plt.fill_between(x,y1,y2,facecolor = 'green',alpha = 0.3)
plt.show()

python如何設置Pyplot的動態(tài)rc參數、繪圖的填充

3.4 直接使用fill進行繪圖的填充

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,1,500)
y = np.sin(3*np.pi*x)*np.exp(-4*x)
fig,ax = plt.subplots()
ax.fill(x,y)
plt.show()

python如何設置Pyplot的動態(tài)rc參數、繪圖的填充

以上就是“python如何設置Pyplot的動態(tài)rc參數、繪圖的填充”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI