天天看點

【Matpyplot】繪制論文用圖表

在撰寫論文的時候發現論文需要上傳清晰的pdf格式的圖,和我們平時跑實驗用的圖不是一個概念。需要根據排版的格式進行調整,改大小,清晰度,去白邊等操作,故在此整理記錄。

圖檔大小

plt.figure(figsize=[7, 5]) #用來控制圖像大小 先width 後height
           

畫折線圖

plt.plot(x_axis,data, label="XXX", color="red", linewidth=1.1, marker='s', markersize=12)

           

x_axis 是用來設定x軸坐标顯示的标簽

label 給線加上圖例說明

color 線顔色

linewidth 線寬度

marker 折線頂點辨別 s:辨別方塊,也有三角V,原點o等其他

alpha 用來調節線條透明度

平滑曲線

因為我用來畫的主要是機器學習裡面的圖随着疊代次數增加,相關曲線會頻繁震蕩,畫出來的圖會不好看,是以就需要進行進行平滑處理,下面的平滑函數使用了,tensorboard中的計算方式。

def smooth(data, weight=0.8):
    last = data[0]
    res= []
    for point in data:
        smoothed_val = last * weight + (1 - weight) * point
        res.append(smoothed_val)
        last = smoothed_val
    return res
           

這時候就可以畫出下面這種圖

【Matpyplot】繪制論文用圖表

字元格式設定

為x軸y軸添加說明,同時可以改變字型大小

plt.ylabel('Reward',fontsize=25)
    plt.xlabel('Training epochs',fontsize=25)
           

控制圖例大小和位置,有的時候因為資料太多産生的圖例可能會導緻,圖例擋住圖像,這時候就可使用如下代碼修改圖例的大小和位置

font1 = {'family': 'Times New Roman',
         'weight': 'normal',
         'size': 18,
         }
plt.legend(loc='upper right', prop=font1)

           

loc可以控制圖例具體位置,prop控制字型大小格式

去白邊

fig = plt.gcf()
    plt.margins(0, 0)
    fig.tight_layout()
           

plt.gcf可以取到fig圖,然後根據fig圖,清除到多餘的白框

導出PDF

為了導出論文能使用的圖檔是以就需要使用pdf格式,同時設定一個大的dpi

fig.savefig("./XXX.pdf", format='pdf', transparent=True, dpi=300, pad_inches=0)