2014-04-01 27 views
7

我正在使用matplotlibpython中寫一個繪圖函數。用戶可以指定一些事物,例如「剔線」。最簡單的方法是更改​​rcParams,但這些屬性是全局屬性,因此在繪製函數被調用之後,所有新圖都會有刻度線。如何在matplotlib中爲一個數字設置本地rcParams或rcParams

是否有一種方法可以將繪圖默認值專門設置爲一個數字?

或者是否至少有一個好的方法來改變一個繪圖函數的屬性,然後將它們更改回以前使用的值(不一定是rcdefaults)?

回答

13

可以使用rc_context功能在with語句,該語句將設置RC參數與您提供以下縮進塊一本字典,然後重新設置他們爲所欲爲塊後前。例如:

with plt.rc_context({"axes.grid": True, "grid.linewidth": 0.75}): 
    f, ax = plt.subplots() # Will make a figure with a grid 
    ax.plot(x, y) 

f, ax = plt.subplots() # Will make a figure without a grid 
ax.plot(x, y) 
+0

具有全局定義的參數只會看起來像一個非常糟糕的設計解決方案。 – firegurafiku

+1

似乎是唯一的方法,但有一個新的縮進有點不方便。 – Scientist1642

相關問題