在matplotlib中顯示我的圖時,我還試圖將它保存爲使用不同維度的png。我正在複製我的主圖(print_fig = fig),然後更改print_fig大小(print_fig.set_size_inches(7,3))。然而,這適用於改變我原來的圖而不是隻是print_fig。有什麼辦法可以克隆圖形對象嗎?在matplotlib中調整大小以保存圖形
我的代碼看起來是這樣的:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(10)
fig = plt.figure()
ax = plt.subplot(111)
ax.set_ylabel("y-label")
for i in xrange(5):
ax.plot(x, i * x, label='$y = %ix$' % i)
ax.legend()
#change dimension of figure for print
#clone fig displayed
print_fig = fig
print_fig.set_size_inches(7,3)
print_fig.savefig('print_fig.png')
plt.show()
這是我的屏幕看起來是這樣的:如果你想要什麼
感謝您的回覆。我知道改變dpi,但它是我希望改變的高度/寬度的比率。你爲什麼認爲這是一項艱鉅的任務?實際上我難以理解的是爲什麼要改變print_fig,改變原始無花果的屬性。 – dimka
當您執行'print_fig = fig'時,您不會複製任何內容,只需以另一個名稱(通過引用複製)調用'fig'即可。所以'print_fig'的任何改變都會改變原來的'fig'。我更新了答案,並提供了有關比例變化的更多信息。 – tiago
怎麼能得到這個數字的真實副本?我在問,因爲我在一個PyQt4-GUI中使用了一個matplotlib-canvas,並且想要用不同的維度來保存這個圖形,而不是畫布圖形。但是,如果我改變尺寸,也是畫布圖形更新。所以我正在尋找與threadopener相同的東西。我試過copy.copy,但沒有成功。 – feinmann