前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python-matplotlib 学术型散点图绘制

Python-matplotlib 学术型散点图绘制

作者头像
DataCharm
发布2021-02-22 15:00:40
4.5K0
发布2021-02-22 15:00:40
举报

01. 引言

本期推文只要介绍学术散点图的绘制教程,涉及的内容主要还是matplotlib散点图的绘制,只不过添加了相关性分析,拟合关系式和颜色映射散点密度(大多数的英文文章中多出现此类图表)。首先我们看一下下面这幅图:

(图片来源于网络,如有侵权,望告知,删除,谢谢)

从该图可以看出,这是用ggplot2绘制的相关性散点图(别问我为啥,第一感觉就是

),需要的数据量极大颜色代表了散点密度大小。下面我们就用python-matplotlib 进行此类相关性散点图的绘制教程。

02. 数据处理及可视化

数据我们选择两组相关性较高的的数据,假设一种为真实值,一种为模型预测值,结果如下(部分):

可视化绘制01:

可视化的绘制过程还是和之前的教程推文差不多,这里我们主要讲解新的内容,绘制完整代码如下:

解释如下:

(1)12-18行,使用numpy.linespace()和scipy的optimize.curve_fit()方法绘制拟合公式,并以此绘制散点拟合线和散点对角线

(2)33-35行,主要针对对Axis设置刻度标签字体。绘图结果如下:

这类图表对一般的学术期刊,其完全符合要求,但如果散点更多,则需要用颜色映射进行散点密度映射,使读者更容易理解图表。

可视化绘制02:

针对颜色映射散点密度大小,主要步骤与上述相同,添加的额外代码如下:计算密度范围并附上颜色:

代码语言:javascript
复制
# Estimate the 2D histogram
nbins = 150
H, xedges, yedges = np.histogram2d(X, Y, bins=nbins)
# H needs to be rotated and flipped
H = np.rot90(H)
H = np.flipud(H)
# Mask zeros
Hmasked = np.ma.masked_where(H==0,H) # Mask pixels with a value of zero
#开始绘图
plt.pcolormesh(xedges, yedges, Hmasked, cmap=cm.get_cmap('jet'), vmin=0, vmax=40)

同时需要对colorbar进行定制化设置,详细代码如下:

代码语言:javascript
复制
cbar = plt.colorbar(ax=ax,ticks=[0,10,20,30,40],drawedges=False)
#cbar.ax.set_ylabel('Frequency',fontdict=colorbarfontdict)
cbar.ax.set_title('Counts',fontdict=colorbarfontdict,pad=8)
cbar.ax.tick_params(labelsize=12,direction='in')
cbar.ax.set_yticklabels(['0','10','20','30','>40'],family='Times New Roman')

最终可视化结果如下:

上述结果是更改了matplotlib绘图风格,即在绘图之前添加如下代码:

代码语言:javascript
复制
plt.style.use('seaborn-darkgrid')

03. 总结

本期推文介绍了学术性散点图的绘制过程,基本上符合一般论文的图表要求,主要涉及的知识点不多也不是很难,后面也会陆续推出学术图表的绘制教程推文,其目的就是一个,给大家提供灵感和些许绘图技巧,当然,如果能在论文书写中帮到大家那就最好不过啦

。本人能力有限,如发现错误后台留言交流或者加入DataCharm交流群讨论。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DataCharm 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01. 引言
  • 02. 数据处理及可视化
  • 03. 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档