最近需要將實(shí)驗(yàn)數(shù)據(jù)畫(huà)圖出來(lái),由于使用python進(jìn)行實(shí)驗(yàn),自然使用到了matplotlib來(lái)作圖。
下面的代碼可以作為畫(huà)圖的模板代碼,代碼中有詳細(xì)注釋?zhuān)筛鶕?jù)需要進(jìn)行更改。
# -*- coding: utf-8 -*-import numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['Arial'] #如果要顯示中文字體,則在此處設(shè)為:SimHeiplt.rcParams['axes.unicode_minus']=False #顯示負(fù)號(hào)x = np.array([3,5,7,9,11,13,15,17,19,21])A = np.array([0.9708, 0.6429, 1, 0.8333, 0.8841, 0.5867, 0.9352, 0.8000, 0.9359, 0.9405])B= np.array([0.9708, 0.6558, 1, 0.8095, 0.8913, 0.5950, 0.9352, 0.8000, 0.9359, 0.9419])C=np.array([0.9657, 0.6688, 0.9855, 0.7881, 0.8667, 0.5952, 0.9361, 0.7848, 0.9244, 0.9221])D=np.array([0.9664, 0.6701, 0.9884, 0.7929, 0.8790, 0.6072, 0.9352, 0.7920, 0.9170, 0.9254])#label在圖示(legend)中顯示。若為數(shù)學(xué)公式,則最好在字符串前后添加"$"符號(hào)#color:b:blue、g:green、r:red、c:cyan、m:magenta、y:yellow、k:black、w:white、、、#線型:- -- -. : , #marker:. , o v < * + 1plt.figure(figsize=(10,5))plt.grid(linestyle = "--") #設(shè)置背景網(wǎng)格線為虛線ax = plt.gca()ax.spines['top'].set_visible(False) #去掉上邊框ax.spines['right'].set_visible(False) #去掉右邊框plt.plot(x,A,color="black",label="A algorithm",linewidth=1.5)plt.plot(x,B,"k--",label="B algorithm",linewidth=1.5)plt.plot(x,C,color="red",label="C algorithm",linewidth=1.5)plt.plot(x,D,"r--",label="D algorithm",linewidth=1.5)group_labels=['dataset1','dataset2','dataset3','dataset4','dataset5',' dataset6','dataset7','dataset8','dataset9','dataset10'] #x軸刻度的標(biāo)識(shí)plt.xticks(x,group_labels,fontsize=12,fontweight='bold') #默認(rèn)字體大小為10plt.yticks(fontsize=12,fontweight='bold')plt.title("example",fontsize=12,fontweight='bold') #默認(rèn)字體大小為12plt.xlabel("Data sets",fontsize=13,fontweight='bold')plt.ylabel("Accuracy",fontsize=13,fontweight='bold')plt.xlim(3,21) #設(shè)置x軸的范圍#plt.ylim(0.5,1)#plt.legend() #顯示各曲線的圖例plt.legend(loc=0, numpoints=1)leg = plt.gca().get_legend()ltext = leg.get_texts()plt.setp(ltext, fontsize=12,fontweight='bold') #設(shè)置圖例字體的大小和粗細(xì)plt.savefig('D://filename.svg',format='svg') #建議保存為svg格式,再用inkscape轉(zhuǎn)為矢量圖emf后插入word中plt.show()下面是上面代碼繪制的圖例:

建議保存圖片的格式svg(因?yàn)閙atplotlib存為eps矢量圖時(shí)候會(huì)有問(wèn)題),然后使用inkscape軟件將svg格式轉(zhuǎn)為emf矢量圖格式。如果svg圖片很多,可以在windows下使用批處理(安裝inkscape軟件后要記得設(shè)置path路徑),下面這段代碼能將它所在目錄下的svg文件轉(zhuǎn)為emf文件。將下面代碼復(fù)制到文本文件,改后綴名為bat。
@echo off for %%i in (*.svg) do ( echo %%i inkscape -f %%i -M %%~ni.emf ) @echo Finished
以上這篇matplotlib繪制符合論文要求的圖片實(shí)例(必看篇)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選