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

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

python設(shè)置Pyplot的動態(tài)rc參數(shù)、繪圖的填充_python

作者:云邊有把小AK ? 更新時間: 2022-08-04 編程語言

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

查看matplotlib的rc參數(shù):

import matplotlib as plt
print(plt.ra_params)

1.全局參數(shù)定制

Matplotlib的全局參數(shù)可以通過編輯配置文件設(shè)置

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

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

2.rc參數(shù)設(shè)置

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

表1 rc參數(shù)名稱及其取值

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

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

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

表3 lines.marker參數(shù)的取值

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

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

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

如果需要在坐標(biāo)軸上顯示時間,可以利用DateFormatter提供的功能進(jìn)行設(shè)置,常用代碼如下:

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

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

例1.rc參數(shù)設(shè)置例1

import numpy as np
import matplotlib.pyplot as plt
fig,ax = plt.subplots()
#配置中文顯示
plt.rcParams['font.family'] = ['SimHei']      #用來顯示中文標(biāo)簽
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:

例2.rc參數(shù)設(shè)置例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:

可以用set_xticks設(shè)置X軸刻度

例3.用set_xticks設(shè)置刻度

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:

可以用set_xticklabels改變刻度,設(shè)置刻度的旋轉(zhuǎn)角度及字體等。

例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:

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

3.繪圖的填充

3.1調(diào)用函數(shù)fill_between()實現(xiàn)曲線下面部分的填充

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)

其中,參數(shù)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)

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

?

3.4 直接使用fill進(jìn)行繪圖的填充

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

原文鏈接:https://blog.csdn.net/weixin_52797843/article/details/125018366

欄目分類
最近更新