如何在python論文中畫出漂亮的插圖?-from知乎
阿新 • • 發佈:2019-01-06
強烈推薦 Python 的繪圖模組 matplotlib:
python plotting 。畫出來的圖真的是高階大氣上檔次,低調奢華有內涵~
適用於從 2D 到 3D,從標量到向量的各種繪圖。能夠儲存成從 eps, pdf 到 svg, png, jpg 的多種格式。並且 Matplotlib 的繪圖函式基本上都與 Matlab 的繪圖函式名字都差不多,遷移的學習成本比較低。開源免費。如圖所示(題目描述中的圖在最後):
(以下圖片均引用自 Thumbnail gallery )
像這種普通的函式圖象:
以及這種 Scatter 圖(中文不知道該怎麼說…):
精緻的曲線,半透明的配色。都顯出你那高貴冷豔的X格,最重要的是隻需一行程式碼就能搞定。從此以後再也不用忍受 Matlab以及GNUPlot 中那蛋疼的配色了。
想畫 3D 資料?沒有問題:
四行程式碼你就能擁有(後三行是畫座標平面上的等高線,嚴格的額說還是一行)。
除此以外,不過你是向量場,網路還是什麼奇葩的需求都能夠搞定:
這還沒完,Matplotlib 還支援Latex公式的插入,當別人畫的圖還是這個樣子的時候(以下圖片引用自Matplotlib Tutorial(譯))
你能夠把它變成這個樣子:
如果再搭配上 IPython 作為執行終端(這張圖是自己的~):
簡直就是神器啊,有木有!
心動不如行動,還等什麼?
(奉上教程一篇 Matplotlib Tutorial(譯))
==== Update: 2013-9-18 18:04 ====
經@許鋮同學提醒,再補充一句,matplotlib 還可以話 xkcd 風格的圖呦~
(圖片引用自網路)
此外結合 IPython Notebook 後更多精彩內容,請看http://nbviewer.ipython.org/
==== Update: 2013-9-19 20:04 ====
如果嫌安裝麻煩並且恰好在 Windows 系統下的話可以嘗試Python的一個發行版winpython - Portable Scientific Python 2/3 32/64bit Distribution for Windows。
==== Update: 2013-10-1 23:45 ====
鑑於@van li同學質疑 matplotlib 是否能畫出題目中所示的影象,我在這裡將題目中的影象用 matplotlib 畫出來如下:
程式碼在此處:https://gist.github.com/coldfog/c479124328fc6bb8b789
程式碼在此處:https://強烈推薦 Python 的繪圖模組 matplotlib: python plotting 。畫出來的圖真的是高階大氣上檔次,低調奢華有內涵~ 適用於從 2D 到 3D,從標量到向量的各種繪圖。能夠儲存成從 eps, pdf 到 svg, png, jpg 的多種格式。並且 Matplotlib 的繪圖函式基本上都與 Matlab 的繪圖函式名字都差不多,遷移的學習成本比較低。開源免費。如圖所示(題目描述中的圖在最後):
(以下圖片均引用自 Thumbnail gallery )
像這種普通的函式圖象:
以及這種 Scatter 圖(中文不知道該怎麼說…):
精緻的曲線,半透明的配色。都顯出你那高貴冷豔的X格,最重要的是隻需一行程式碼就能搞定。從此以後再也不用忍受 Matlab以及GNUPlot 中那蛋疼的配色了。
想畫 3D 資料?沒有問題:
四行程式碼你就能擁有(後三行是畫座標平面上的等高線,嚴格的額說還是一行)。
除此以外,不過你是向量場,網路還是什麼奇葩的需求都能夠搞定:
這還沒完,Matplotlib 還支援Latex公式的插入,當別人畫的圖還是這個樣子的時候(以下圖片引用自Matplotlib Tutorial(譯))
你能夠把它變成這個樣子:
如果再搭配上 IPython 作為執行終端(這張圖是自己的~):
簡直就是神器啊,有木有!
心動不如行動,還等什麼?
(奉上教程一篇 Matplotlib Tutorial(譯))
==== Update: 2013-9-18 18:04 ====
經@許鋮同學提醒,再補充一句,matplotlib 還可以話 xkcd 風格的圖呦~
(圖片引用自網路)
此外結合 IPython Notebook 後更多精彩內容,請看http://nbviewer.ipython.org/
==== Update: 2013-9-19 20:04 ====
如果嫌安裝麻煩並且恰好在 Windows 系統下的話可以嘗試Python的一個發行版winpython - Portable Scientific Python 2/3 32/64bit Distribution for Windows。
==== Update: 2013-10-1 23:45 ====
鑑於@van li同學質疑 matplotlib 是否能畫出題目中所示的影象,我在這裡將題目中的影象用 matplotlib 畫出來如下:
程式碼在此處:https://gist.github.com/coldfog/c479124328fc6bb8b789
(以下圖片均引用自 Thumbnail gallery )
像這種普通的函式圖象:
plt.fill(x, y1, 'b', x, y2, 'r', alpha=0.3)
以及這種 Scatter 圖(中文不知道該怎麼說…):
plt.scatter(x, y, s=area, alpha=0.5)
精緻的曲線,半透明的配色。都顯出你那高貴冷豔的X格,最重要的是隻需一行程式碼就能搞定。從此以後再也不用忍受 Matlab以及GNUPlot 中那蛋疼的配色了。
想畫 3D 資料?沒有問題:
ax.plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=0.3) cset = ax.contourf(X, Y, Z, zdir='z', offset=-100, cmap=cm.coolwarm) cset = ax.contourf(X, Y, Z, zdir='x', offset=-40, cmap=cm.coolwarm) cset = ax.contourf(X, Y, Z, zdir='y', offset=40, cmap=cm.coolwarm)
四行程式碼你就能擁有(後三行是畫座標平面上的等高線,嚴格的額說還是一行)。
除此以外,不過你是向量場,網路還是什麼奇葩的需求都能夠搞定:
plt.streamplot(X, Y, U, V, color=U, linewidth=2, cmap=plt.cm.autumn) plt.colorbar()
plt.triplot(x, y, triangles, 'go-') plt.title('triplot of user-specified triangulation') plt.xlabel('Longitude (degrees)') plt.ylabel('Latitude (degrees)')
ax = plt.subplot(111, polar=True) bars = ax.bar(theta, radii, width=width, bottom=0.0)
這還沒完,Matplotlib 還支援Latex公式的插入,當別人畫的圖還是這個樣子的時候(以下圖片引用自Matplotlib Tutorial(譯))
你能夠把它變成這個樣子:
如果再搭配上 IPython 作為執行終端(這張圖是自己的~):
簡直就是神器啊,有木有!
心動不如行動,還等什麼?
(奉上教程一篇 Matplotlib Tutorial(譯))
==== Update: 2013-9-18 18:04 ====
經@許鋮同學提醒,再補充一句,matplotlib 還可以話 xkcd 風格的圖呦~
(圖片引用自網路)
此外結合 IPython Notebook 後更多精彩內容,請看http://nbviewer.ipython.org/
==== Update: 2013-9-19 20:04 ====
如果嫌安裝麻煩並且恰好在 Windows 系統下的話可以嘗試Python的一個發行版winpython - Portable Scientific Python 2/3 32/64bit Distribution for Windows。
==== Update: 2013-10-1 23:45 ====
鑑於@van li同學質疑 matplotlib 是否能畫出題目中所示的影象,我在這裡將題目中的影象用 matplotlib 畫出來如下:
程式碼在此處:https://gist.github.com/coldfog/c479124328fc6bb8b789
程式碼在此處:https://強烈推薦 Python 的繪圖模組 matplotlib: python plotting 。畫出來的圖真的是高階大氣上檔次,低調奢華有內涵~ 適用於從 2D 到 3D,從標量到向量的各種繪圖。能夠儲存成從 eps, pdf 到 svg, png, jpg 的多種格式。並且 Matplotlib 的繪圖函式基本上都與 Matlab 的繪圖函式名字都差不多,遷移的學習成本比較低。開源免費。如圖所示(題目描述中的圖在最後):
(以下圖片均引用自 Thumbnail gallery )
像這種普通的函式圖象:
plt.fill(x, y1, 'b', x, y2, 'r', alpha=0.3)
以及這種 Scatter 圖(中文不知道該怎麼說…):
plt.scatter(x, y, s=area, alpha=0.5)
精緻的曲線,半透明的配色。都顯出你那高貴冷豔的X格,最重要的是隻需一行程式碼就能搞定。從此以後再也不用忍受 Matlab以及GNUPlot 中那蛋疼的配色了。
想畫 3D 資料?沒有問題:
ax.plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=0.3) cset = ax.contourf(X, Y, Z, zdir='z', offset=-100, cmap=cm.coolwarm) cset = ax.contourf(X, Y, Z, zdir='x', offset=-40, cmap=cm.coolwarm) cset = ax.contourf(X, Y, Z, zdir='y', offset=40, cmap=cm.coolwarm)
四行程式碼你就能擁有(後三行是畫座標平面上的等高線,嚴格的額說還是一行)。
除此以外,不過你是向量場,網路還是什麼奇葩的需求都能夠搞定:
plt.streamplot(X, Y, U, V, color=U, linewidth=2, cmap=plt.cm.autumn) plt.colorbar()
plt.triplot(x, y, triangles, 'go-') plt.title('triplot of user-specified triangulation') plt.xlabel('Longitude (degrees)') plt.ylabel('Latitude (degrees)')
ax = plt.subplot(111, polar=True) bars = ax.bar(theta, radii, width=width, bottom=0.0)
這還沒完,Matplotlib 還支援Latex公式的插入,當別人畫的圖還是這個樣子的時候(以下圖片引用自Matplotlib Tutorial(譯))
你能夠把它變成這個樣子:
如果再搭配上 IPython 作為執行終端(這張圖是自己的~):
簡直就是神器啊,有木有!
心動不如行動,還等什麼?
(奉上教程一篇 Matplotlib Tutorial(譯))
==== Update: 2013-9-18 18:04 ====
經@許鋮同學提醒,再補充一句,matplotlib 還可以話 xkcd 風格的圖呦~
(圖片引用自網路)
此外結合 IPython Notebook 後更多精彩內容,請看http://nbviewer.ipython.org/
==== Update: 2013-9-19 20:04 ====
如果嫌安裝麻煩並且恰好在 Windows 系統下的話可以嘗試Python的一個發行版winpython - Portable Scientific Python 2/3 32/64bit Distribution for Windows。
==== Update: 2013-10-1 23:45 ====
鑑於@van li同學質疑 matplotlib 是否能畫出題目中所示的影象,我在這裡將題目中的影象用 matplotlib 畫出來如下:
程式碼在此處:https://gist.github.com/coldfog/c479124328fc6bb8b789