在用python繪圖的過程中,由於期刊的要求,需要自己做一些額外操作,比如:
- 怎麼改變圖的大小?
- 怎麼設置存儲圖片的分辨率?
- 怎麼設置圖上的字體及大小?
- 怎麼解決存儲的圖片信息不完整的問題(e.g. 橫縱座標的標籤沒有保存下來)?
接下來,我用一個例子,對以上問題進行闡述。
import matplotlib.pyplot as plt
from matplotlib.pyplot import figure
import numpy as np
figure(num=None, figsize=(2.8, 1.7), dpi=300)
# figsize的2.8和1.7指的是英寸,dpi指定圖片分辨率。那麼圖片就是(2.8*300)*(1.7*300)像素大小
plt.plot(test_mean_1000S_n, 'royalblue', label='without threshold')
plt.plot(test_mean_1000S, 'darkorange', label='with threshold')
# 畫圖,並指定顏色
plt.xticks(fontproperties = 'Times New Roman', fontsize=8)
plt.yticks(np.arange(0, 1.1, 0.2), fontproperties = 'Times New Roman', fontsize=8)
# 指定橫縱座標的字體以及字體大小,記住是fontsize不是size。yticks上我還用numpy指定了座標軸的變化範圍。
plt.legend(loc='lower right', prop={'family':'Times New Roman', 'size':8})
# 圖上的legend,記住字體是要用prop以字典形式設置的,而且字的大小是size不是fontsize,這個容易和xticks的命令弄混
plt.title('1000 samples', fontdict={'family' : 'Times New Roman', 'size':8})
# 指定圖上標題的字體及大小
plt.xlabel('iterations', fontdict={'family' : 'Times New Roman', 'size':8})
plt.ylabel('accuracy', fontdict={'family' : 'Times New Roman', 'size':8})
# 指定橫縱座標描述的字體及大小
plt.savefig('F:/where-you-want-to-save.png', dpi=300, bbox_inches="tight")
# 保存文件,dpi指定保存文件的分辨率
# bbox_inches="tight" 可以保存圖上所有的信息,不會出現橫縱座標軸的描述存掉了的情況
plt.show()
# 記住,如果你要show()的話,一定要先savefig,再show。如果你先show了,存出來的就是一張白紙。
讓我們看看出來的效果: