暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

pyhton科研绘图(一)——带趋势线的散点图

树深时见鹿wm 2022-07-31
1133

点击蓝字 关注我们

【前言】为满足某师姐论文发表需求,同时克服excel出图质量不高、可控度低等问题,进一步提升图片美观度和提高图像分辨率。文章基于python,利用pandas模块处理excel数据,利用numpy模块进行回归拟合,利用matplotlib进行散点图、曲线图绘制并完成图幅整饰,最后生成半自动的制图代码。(以下实验数据为虚构数据,大佬绕路)

【原始数据分析】由于数据肯定是不能公布的,故我胡编了以下数据(软件自动生成的),就假装是2018、2019、2020年不同地区的收入、消费水平等指标数据吧(图1)。从表格数据来看,各表结构一致,均为字段名加数据格式,各字段下均有50条数据,字段名为单一单元格。故绘制散点图的思路是:确定所用年份和横纵坐标——从excel中按确定的横纵坐标获取数据——完成图幅整饰——绘制散点图——回归拟合绘制趋势线——导出图片。



【用到的知识】

pandas模块、numpy模块、matplotlib模块、函数

【计算过程】

(一)功能简介、模块导入与表、字段、中英文、横纵坐标名的确定(导入pandas模块、numpy模块、matplotlib模块)



(二)将整个功能实现定义为函数,实现某表、某列数据提取并用字典进行存储,如{”x1”:[1,2,3,4]}形式。

(1)由于步骤一导入的是字符串,且每个变量含多个值,故按逗号、分号等进行拆分,索引值需转化为数值型。

(2)定义get_data函数,固定列索引,迭代行索引,按列迭代数据,存储于列表

(3)将利用工作薄表索引和横纵坐标,确定各表的横纵坐标数据,并用字典实现横纵坐标字段、表、数据三者的存储。(x,y表示横纵坐标字段;0、1等表示第几张表;值则为该列数据)



(三)利用pyplot对图片横纵比例、分辨率、坐标刻度值、横纵坐标字体、脊柱、网格等进行设置,并利用scatter绘制输入参数的散点图,利用ployfit进行回归拟合,用savefig存储图,最后将字典作为参数输入得到最后结果。





【输出结果】

最后得到如图所示的结果图:




以上是本次经验贴,

欢迎收藏、关注,

后期会不断更新python相关知识和技巧,大家相互学习共同进步。


文章转载自树深时见鹿wm,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论