天天看點

使用python制作矢量圖

Get一個使用python制作矢量圖的新技能:

前言:

Matplotlib遠比我們想象的強大,而這隻是衆多python強大的包中的一個,不愧是群英荟萃。

繪圖後端我們一般是看不見的,matplotlib有兩種後端:

使用者界面後端(用于pygtk、wxpython、tkinter、qt4或macosx;也稱為“互動式後端”)和硬拷貝後端制作圖像檔案(PNG, SVG, PDF, PS;也稱為“非互動式後端”)即Renderer。

介紹具體如下表:

使用python制作矢量圖

對于渲染引擎(renderer),還可以區分矢量渲染器(vector)和光栅渲染器(raster)。矢量圖形語言發出“從這一點畫一條線到這一點”這樣的繪圖指令,是以是無标度的,光栅後端生成直線的像素表示,其精度取決于DPI設定。

可以看到位圖後端有1種:AGG、

矢量圖的後端有3種:PS、PDF、SVG

還有一個同時支援兩者的:Cairo

今天我們試一下SVG

正文:

代碼其實很簡單:

第一步:

注意順序,設定後端參數必須在引入pyplot之前。

import matplotlib
matplotlib.rcParams['backend'] = 'SVG'
import matplotlib.pyplot as plt

plt.plot([1,2,3])
plt.savefig('kankan.svg',format='svg')
           

在相應目錄将會生成kankan.svg檔案。

第二步:

上述檔案一般無法直接打開,需要使用相應的軟體,我用的是Inkscape,百度一下下載下傳安裝即可。

檔案–>打開,標明第一步儲存的檔案,打開後如下圖:

使用python制作矢量圖

第三步:

如果對圖檔沒有其他編輯需求,直接另存為:增強型圖文檔案:*.emf

随後就可以在word或者ppt中将儲存好的emf圖檔插入。

對比一下直接儲存png圖檔和emf檔案:

使用python制作矢量圖

左邊是emf圖元檔案,右邊是png。可以吧,矢量圖永遠都不會模糊,尤其在放大的情況下,優勢更明顯。

當然,一般情況隻要png能滿足我們的需求那麼就用png,畢竟友善很多。