您好,登錄后才能下訂單哦!
今天小編給大家分享一下python如何設置Pyplot的動態rc參數、繪圖的填充的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
Matplotlib配置了配色方案和默認設置,主要用來準備用于發布的圖片。有兩種方式可以設置參數,即全局參數定制和rc設置方法。
查看matplotlib的rc參數:
import matplotlib as plt print(plt.ra_params)
Matplotlib的全局參數可以通過編輯配置文件設置
import matplotlib as plt print(plt.matplotlib_fname) #顯示當前用戶的配置文件目錄
查找到當前用戶的配置文件目錄,然后用編輯器打開,修改matplotlib文件,即可修改配置參數。
使用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:
例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:
可以用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:
可以用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:
其中,rotation參數表示X坐標標簽的旋轉角度;fontsize為字號,可以取值為“xx-small”“x-small”“small”“medium”“large”“x-large”“xx-large”“smaller”“None”。
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)
其中,參數x表示整個X軸都覆蓋;0表示覆蓋的下限;y表示覆蓋的上限時y這條曲線,facecolor表示覆蓋區域的顏色;alpha表示覆蓋區域的透明度[0,1],其值越大,表示越不透明
plt.fill_between(x[15:300],0,0.4,facecolor = 'green',alpha = 0.3)
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()
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的動態rc參數、繪圖的填充”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。