plt.fill(x, y1, 'b', x, y2, 'r', alpha=0.3)以及這個Scatter 圖(中文不知道該怎麼說…):
plt.scatter(x, y, s=area, alpha=0.5)精緻的曲線,半透明的配色。顯出你那高貴冷豔的X格,最重要的是只需一行程式碼就能搞定。從此再也不用忍受 Matlab以及GNUPlot 中那蛋白的配色了。
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(譯) )
#程式碼在此:
#
看到楼下有人说配色和好看,唉....那我也贴几个吧...只不过当初限于篇幅没有写而已。另外,搜索公众号顶级python后台回复“进阶”,获取一份惊喜礼包。
首先,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发行版。下载安装后直接使用即可,它几乎预装了所有要用到的科学计算及可视化的库。
有盆友在评论里说希望能有完整的教程,确实就这个答案来说,离实际使用还有很大的距离,网上相关的中文资料也不多。不过真要写起来这个答案也装不下,况且写在这个问题下也不是很恰当。等到那天我有专栏了再说吧,到时候也许会写一个关于可视化的系列教程。
翻遍这个问题下的所有回答,发现凡是提到Matlab的,其评价中常有‘锯齿’,‘菜鸟’,‘难看’,‘不忍直视’等标签。
然而,2020年了,技术提升了,观念进步了,当一些基本问题解决后,Matlab还那么‘不堪’吗?
观察Mathematica、Origin、Python/matplotlib、R/ggplot2等软件绘制的数据、结果图,其与Matlab图的差异主要体现在点、线、面等对象属性(位置、尺寸、颜色等)的不同上。
既然只是属性的不同,那是不是只要修改一下这些信息,就可以实现各种软件绘图风格之间的转换了呢?
答案是肯定的。
比如,这是高赞回答 @冯昱尧用Python/matplotlib绘制的一幅图:
我们用Matlab默认属性来绘制,效果是这样的(没加误差棒):
然後,只需再修改一下位置、尺寸、顏色等信息,就可以得到風格差不多的圖(沒加誤差棒):
當我們用這個想法來思考該如何繪製插圖時,就很容易實現自己的小想法,仿造甚至創造出理想的插圖。
例如,某一天,發現傍晚的天空顏色很美,心想:為什麼不能把它畫到論文插畫裡呢? (見:Matlab論文插畫配色2-自然漸層)
於是,
##此言差矣。
就像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, 1999), gramm improves Matlab's plotting functionality, 3allowing to gene 庫code.
範例效果如下:
還有很多專門針對論文插畫的工具包,這裡就不一一介紹了。
總的來說,工具只是工具,它們並沒有高低貴賤之分。
若想畫出好看的插圖,關鍵還是在於使用工具的人。
集中一點,登峰造極。
參考:
#https://www.php.cn/link/b3ddb7c5b10be95dbc3f9152c58becce
https://www.php.cn/link/171ae1bbb81475eb96287dd78565b38b
###以上是用 Python 畫如此漂亮的專業插圖 ?簡直 So easy!的詳細內容。更多資訊請關注PHP中文網其他相關文章!