久久综合九色综合97婷婷-美女视频黄频a免费-精品日本一区二区三区在线观看-日韩中文无码有码免费视频-亚洲中文字幕无码专区-扒开双腿疯狂进出爽爽爽动态照片-国产乱理伦片在线观看夜-高清极品美女毛茸茸-欧美寡妇性猛交XXX-国产亚洲精品99在线播放-日韩美女毛片又爽又大毛片,99久久久无码国产精品9,国产成a人片在线观看视频下载,欧美疯狂xxxx吞精视频

有趣生活

當前位置:首頁>時尚>python畫圖用什么畫最好(用Python畫如此漂亮的專業插圖)

python畫圖用什么畫最好(用Python畫如此漂亮的專業插圖)

發布時間:2024-09-13閱讀(17)

導讀本文整理自知乎問答,僅用于學術分享,著作權歸作者所有。如有侵權,請聯系后臺作刪文處理。編譯:極市平臺方法一作者|馮昱堯https://www.zhihu.c....

本文整理自知乎問答,僅用于學術分享,著作權歸作者所有。如有侵權,請聯系后臺作刪文處理。

編譯:極市平臺

方法一

作者|馮昱堯

https://www.zhihu.com/question/21664179/answer/18928725

強烈推薦 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 數據?沒有問題 (用mayavi可能更方便):

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 還可以話 xkcd 風格的圖呦~

(圖片引用自網絡)

此外結合 IPython Notebook 后更多精彩內容,請看http://nbviewer.ipython.org/

如果嫌安裝麻煩并且恰好在 Windows 系統下的話可以嘗試Python的一個發行版winpython - Portable Scientific Python 2/3 32/64bit Distribution for Windows。

鑒于@van li同學質疑 matplotlib 是否能畫出題目中所示的圖像,我在這里將題目中的圖像用 matplotlib 畫出來如下:

代碼在此處:

https://gist.github.com/coldfog/c479124328fc6bb8b789

代碼在此處:

https://gist.github.com/coldfog/5da63a6958fc0a949b52

看到樓下有人說配色和好看,唉....那我也貼幾個吧...只不過當初限于篇幅沒有寫而已。

首先,python有一個專門的配色包jiffyclub/brewer2mpl,提供了從美術角度來講的精美配色(戳這里感受ColorBrewer: Color Advice for Maps)。

此外還有一些致力于美化繪圖的庫,用起來也都非常方便,比如olgabot/prettyplotlib 。

廢話不多說,上圖就是王道。(下面圖片來源網絡)

有人可能會說需要復雜的設置,其實也不用。比如上邊這幅圖,只需要多加一個參數就好:

cmap=brewer2mpl.get_map(RdBu, diverging, 8, reverse=True).mpl_colormap,

樓下說到統計繪圖。嘛seaborn 是一個調用 matplotlib 的統計繪圖庫,上圖:

(https://github.com/mwaskom/seaborn)

代碼一行,后邊的幾乎都是一行,沒做其他設置,默認就這樣。我就不貼其他的代碼了:

g = sns.jointplot(x1, x2, kind="kde", size=7, space=0)

還有個更炫酷的可交互式繪圖,大家自己戳開看吧:

http://nbviewer.ipython.org/github/plotly/python-user-guidechaocc/blob/master/s0_getting-started/s0_getting-started.ipynb

哼哼,完爆了吧~~~~\(≧▽≦)/~

---

遇到安裝問題的請嘗試Anaconda這個Python發行版。下載安裝后直接使用即可,它幾乎預裝了所有要用到的科學計算及可視化的庫。

有盆友在評論里說希望能有完整的教程,確實就這個答案來說,離實際使用還有很大的距離,網上相關的中文資料也不多。不過真要寫起來這個答案也裝不下,況且寫在這個問題下也不是很恰當。等到那天我有專欄了再說吧,到時候也許會寫一個關于可視化的系列教程。

方法二

作者|阿昆

https://www.zhihu.com/question/21664179/answer/1182984311

翻遍這個問題下的所有回答,發現凡是提到Matlab的,其評價中常有‘鋸齒’,‘菜鳥’,‘難看’,‘不忍直視’等標簽。

然而,2020年了,技術提升了,觀念進步了,當一些基本問題解決后,Matlab還那么‘不堪’嗎?

觀察Mathematica、Origin、Python/matplotlib、R/ggplot2等軟件繪制的數據、結果圖,其與Matlab圖的差異主要體現在點、線、面等對象屬性(位置、尺寸、顏色等)的不同上

既然只是屬性的不同,那是不是只要修改一下這些信息,就可以實現各種軟件繪圖風格之間的轉換了呢?

答案是肯定的。

比如,這是高贊回答 @馮昱堯用Python/matplotlib繪制的一幅圖:

我們用Matlab默認屬性來繪制,效果是這樣的(沒加誤差棒):

然后,只需再修改一下位置、尺寸、顏色等信息,就可以得到風格差不多的圖(沒加誤差棒):

當我們用這一思想來思考該如何繪制插圖時,就很容易實現自己的小想法,仿造甚至創造出理想的插圖。

比如,某一天,發現傍晚的天空顏色很美,心想:為什么不能把它畫到論文插圖里呢?(見:Matlab論文插圖配色2——自然漸變)

于是,

再比如,某一天,看到女朋友的照片,覺得很美,心想:為什么不能把她畫到論文插圖里呢?(見:Matlab論文插圖配色1——是女朋友的顏色)

于是,

這時,有朋友就要說了:“哎呀答主,你整這些個花里花哨的東西,還不是得一行代碼一行代碼的敲出來啊,太麻煩了吧。”

此言差矣。

就像R有ggplot2,Python有matplotlib,Matlab其實也有很多現成的繪圖工具包,并不需要你自己開發。

比如,

Pierre Morel [1] 結合ggplot2,開發了gramm工具,用于繪制復雜圖形。

Inspired by ggplot2 (Wickham 2009), the R implementation of “grammar of graphics” principles (Wilkinson 1999), gramm improves Matlab’s plotting functionality, allowing to generate complex figures using high-level object-oriented code.

示例效果如下:

類似的,Stephen Cobeldick [2] 將matplotlib配色方案移植到了Matlab。

也就是說,在Matlab中就可以直接用matplotlib的配色方案了,就不必總是‘jet’了。

The MatPlotLib 2.0 default colormaps ported to MATLAB. This submission also includes the Line ColorOrder colormaps!

示例效果如下:

還有很多專門針對論文插圖的工具包,這里就不一一介紹了。

總的來說,工具只是工具,它們并沒有高低貴賤之分。

若想畫出好看的插圖,關鍵還是在于使用工具的人

集中一點,登峰造極。

參考:

Morel P . Gramm: grammar of graphics plotting in Matlab.

Cobeldick S . MatPlotLib Perceptually Uniform Colormaps.

TAGS標簽:  python  畫圖  什么  最好  python畫圖用什

歡迎分享轉載→http://m.avcorse.com/read-412942.html

Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖