查看原文
其他

用Stata画的三维图很奇怪怎么办?

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:尚晨曦,河南大学经济学院

本文编辑:陈梦华

技术总编:李婷婷

Stata&Python云端课程来啦!

好雨知时节,当春乃发生。为了感谢大家长久以来的支持和信任,爬虫俱乐部为大家送福利啦!!!Stata&Python特惠课程双双上线腾讯课堂~原价2400元的Python编程培训课程,现在仅需100元,详情请查看推文《Python云端课程福利大放送!0基础也能学~》。关于Stata,爬虫俱乐部推出了系列课程,内容包括字符串函数、正则表达式、爬虫专题和文本分析,可以随心搭配,价格美丽,物超所值,更多信息可查看Stata系列推文《与春天有个约会,爬虫俱乐部重磅推出正则表达式网络课程!》《与春天有个约会,爬虫俱乐部重磅推出基本字符串函数网络课程》等。变的是价格,不变的是课程质量和答疑服务。对报名有任何疑问欢迎在公众号后台和腾讯课堂留言哦!


导读


在实证研究中,我们经常需要画图来更直观的表示数据之间的关系,而三维图更是在此基础上超越平面,实现在立体空间上的表达,不仅更加美观,而且具有很强的视觉冲击力。比如:

  然而这些美丽的立体图好像都是”别人家的孩子“,同样的命令,我们自己的三维图却长这个样子:

  今天小编就带大家仔细分析一下造成如此奇怪图形的原因,进而画出漂亮的三维图~


一、命令介绍


  关于使用Stata画三维图的命令有以下三个:graph3dsurfacescat3

小编在这里就不再赘述了。我们今天主要使用的是graph3d这个命令,话不多说,我们从模仿大佬做的图开始吧~

二、操作演示


  大家可以在后台回复“三维图”,获得完整的do文件和数据,和我一起动手做吧。今天我们模仿的图为:

德国夫妻双方每月总劳动收入的预算约束(x轴代表第一劳动者的劳动收入,y轴代表第二劳动者的劳动收入,z轴代表每月可支配收入)
来源:Jessen, Robin, Davud Rostam‐Afschar, and Viktor Steiner. "Getting the poor to work: Three welfare increasing reforms for a busy Germany." (2015).

第一步:安装graph3d命令

ssc install graph3d,replace

第二步:输入数据

use "budget_graphs3d.dta",clear

第三步:绘制三维图

graph3d lab_income_m y_Basic_Income_Flat_Tax lab_income_f

图形输出:

这。。。什么鬼??
别着急,我们通过graph3d的一些选项来进行调整。

第四步:美化三维图

  1. 使用cuboid加上长方体框;innergrid在长方体框上添加额外的网格线;wire将数据点连接起来;colorscheme()给数据点换个颜色。

graph3d lab_income_m y_Basic_Income_Flat_Tax lab_income_f, ///cuboid innergrid wire colorscheme(cr)

图形输出:

是不是的确有好一些了~

  1. 使用xang()yang()把图形旋转一下;blv使长方形的顶点用黑色小圆点显示;coord()标出长方体所有点的坐标;mark设计数据点形状;equi设计数据点距离;markeroptions(msize())设计数据点大小。

graph3d lab_income_m y_Basic_Income_Flat_Tax lab_income_f, ///cuboid innergrid wire colorscheme(cr) xang(10) yang(292) blv ///coord(4 5 7 8) format("%12.0fc") mark equi markeroptions(msize(1))
图形输出:
基本已经大工告成了~
  1. 设置标签内容、位置、角度

graph3d lab_income_m y_Basic_Income_Flat_Tax lab_income_f, ///cuboid innergrid wire colorscheme(cr) xang(10) yang(292) blv ///coord(4 5 7 8) format("%12.0fc") mark equi ///markeroptions(msize(1)) xlab("Primary") ///ylab("Monthly Household Disposable Income") zlab("Secondary") ///xlang(355) ylang(90) zlang(30) xlpos(2) ylpos(2) zlpos(12)

图形输出:

复制完成,是不是也没有那么难呢~


三、注意事项


虽说三维图很美观,视觉上层次分明,但并不是所有的数据都适合使用三维图来描述的,如果你绘制的三维图很奇怪,在这里小编有以下几点建议和改进方法:

  1. 数据x、y、z中最好有两个数据所组成的点均匀遍布平面,如下图所示:

  2. 通过xang()yang()调整图像角度,使得图像更立体直观。

  3. 分别尝试Stata中graph3dsurfacescat3三个画三维图的命令,可能有不同的收获。

  4. 加一些命令的选项,例如加上长方体框、改变颜色,调整数据点的大小等,也是让图像更美观的好方法。

  5. 生成图像以后,使用图形编辑器进行微调。

今天的分享就到这里,你学会了吗?

最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。




对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!

往期推文推荐   

如何随机生成满足特定数据特征的新变量?

爬取无法翻页网页——自然科学基金项目及可视化

爬取京东评论数据进行情感分类

Stata与音乐之间的酷炫连接

这些年,爬虫俱乐部走出的博士们!
         看这里,近五年各校高被引论文上榜名单!

高校经管类核心期刊发文排行榜

疯狂的科研创新加速器——Stata!

  可盐可甜,“粽”有所爱,快来pick你最爱的粽子吧!

  好玩有趣的手绘图形库——cutecharts

  爬虫实战|摩尔庄园微博话题讨论

  一季度财报出炉,哪些公司最烧钱?

  一季度财报出炉,哪些公司最赚钱?

  技能篇 | 图片合并大法

  批量空气质量数据文件合并分析

  Stata17之日期时间新功能

  Stata17之Lasso新功能

        爱奇艺视频弹幕爬取之《小舍得》         数据可视化利器——Matplotlib

  从第七次人口普查看中国人口变化|Stata与Python交互绘图

  200万投资者关注!!哪家公司这么牛?

  
带你领略一天天气之变化

  利用pyecharts看微博粉丝地区分布

  零值太多怎么办?解锁Stata17新命令ziologit

  Stata17新功能之Python API  小罗肥归升级啦|解锁Stata17之新命令xtmlogit  
速度大比拼之Stata17有多快?

初识PyStata

辞旧迎新——Stata17之Do-file编辑器优化

关于我们 


微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。



此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。

投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存