簡體   English   中英

更改已經創建的matplotlib圖形上的字體和線條粗細

[英]Change fonts and line thicknesses on a matplotlib figure that has already been created

通常,我會創建一個圖,供發布的文章以及PowerPoint幻燈片使用。 看起來不錯的印刷品並不總是在幻燈片上看起來不錯。 我想創建一個matplotlib圖形,保存它,然后更新字體和線條粗細並再次保存。 如何將更新的rcParams推送到已制作的圖形?

例如:

import numpy as np
import matplotlib.pylab as plt
x = np.arange(100)/99.*4.*np.pi
y = np.sin(x)
plt.plot(x,y)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Nice title')
plt.savefig('default.pdf')
update_rcParams(font=20, thick=5)
plt.savefig('publish.pdf')
update_rcParams(font=30, thick=10)
plt.savefig('slide.pdf')

update_rcParams什么樣的?

我認為您無法像這樣進行全面的更改,因為rcParams用於實例化一堆對象(線對象,文本對象等,它們全部組合在一起構成繪圖),之后創建他們根本不在乎rcParams是什么。 但是,您可以修改對象本身……例如,要更改軸標簽的字體大小,您可以獲取實際的文本對象並進行修改。

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
xlbl = ax.set_xlabel('X axis label')

xlbl.set_fontsize(20)

plt.show()

或者,如果您沒有保存單個對象(即,您只是叫ax.set_xlabel()plt.xlabel() ),則可以從Axes層次結構中獲取它:

ax = plt.gca() # gets the current Axes object
xlbl = ax.xaxis.get_label() # gets the Text object for the x axis label

對於所需的全面更改,您需要編寫自己的函數來修改感興趣的項。 希望這將使您朝正確的方向前進。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM