一步一步教你作出漂亮的三维图形(一)

2017-04-12 强宇曦 爬虫俱乐部 爬虫俱乐部

在三维的世界里,二维图形已经无法满足人类的需求了。那stata如何画三维图呢?今天,爬虫君向大家介绍命令graph3d来画3d图形。

1

安装命令

ssc install graph3d,replace

在给定三个变量的数据集后,graph3d可以绘制3d图,并且支持图形的移动、缩放和旋转,默认用小黑点绘制图形。

语法结构如下:

graph3d var1 var2 var3 [var4] [if] [in] [, options]

2

栗子说明

我们随机生成用于画图的变量:

clear

set obs 600

gen x = int((_n - mod(_n-1,30) -1 ) /30 )

gen z = mod(_n-1,30)

gen y = normalden(x,10,3)*normalden(z,15,5)*10000

1

绘制以x、y、z为变量的三维图,程序如下:

graph3d x y z


graph3d x y z,wire  // wire选项可以绘制一个线框将所有的数据点连接起来。


2

例一的三维图是基本款,如果我们想将图形颜色变换一下,角度扭转一下要怎么做呢?程序如下:

graph3d x y z , colorscheme(cr) xang(80)

在这里,我们用了graph3d的两个选项:

(1)colorscheme():调色盘。graph3d提供了三种调色盘,分别为cr(蓝绿色和红色)、bcgyr(蓝色、蓝绿色、绿色、黄色和红色)、fade(黑色渐变)

(2)xang():x轴围绕枢轴旋转某个角度,默认为45度。栗子中为x轴旋转80度。同样的,也有yang(默认旋转45度)、zang(默认旋转45度),与xang含义相同。那枢轴又在哪里呢?加一个选项piv即可显示枢轴所在位置。

3

很多时候我们想在三维图外面增加一个长方体的框,同时增加x轴、y轴、z轴的标签,要怎么做呢?程序如下:

graph3d x y z, xang(80) cuboid innergrid coord(all) xlabel(x2333) xlangle (330) xlpos(9) yl(y2333) ylangle(90) ylpos(3) zlabel(z2333) zlangle(33) zlpos(11)

在这里,我们又使用了graph3d的几个其他选项:

(1)cuboid:添加长方体框。

(2)innergrid:在长方体框上添加额外的网格线。

(3)coord(all):标出长方体所有点的坐标。

(4)xlabel(x2333):添加x轴的标签x2333

(5)xlangle (330):指定x轴标签的角度。标签一开始添加进去是在长方体顶点中心位置与水平放置,这样会导致图形的坐标轴指定不清楚,所以需要将标签旋转一定角度使得标签正好与在x轴平行。

(6)xlpos(9):指定x轴标签的位置。有0-12个位置,1-12表示表盘的时刻,比如3表示三点钟方向,指正东位置;0指中心。xplos()默认为0,标签会放置在长方体顶点中心,所以需要指定标签位置使得标签指向更明确。

yl(y2333)、ylangle(90、 ylpos(3)、zlabel(z2333)、zlangle(33)、zlpos(11)意义相同

4

除了可以用点表示三维图形的数据,graph3dmarkeroptions选项提供了其他选择,比如圆圈、钻石等,同时颜色、大小等都可以调整。

graph3d x y z, markeroptions(msymbol(D) mfcolor(white) mlcolor(green) msize(small))


markeroptions选项可以设定数据标记。

(1)msynbol():设定标记的形状。比如D(钻石)、S(正方形)等

(2)mfcolor():设定标记填充颜色

(3)mlcolor():设定标记外部线条的颜色

(4)msize():设定标记的大小

大家可以自己试试然后设计一个很美观的图案哦!


以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~

文字编辑:司海涛

技术总编:刘贝贝



往期推文推荐:

1.中国高校财经、管理与综合类期刊灌水排行榜

2.关于RTF你不知道的命令

3.关于RTF你不知道的命令之番外篇

4.免费事件研究,一片片从邮局寄来

5.免费的股价同步性,一片片从邮局寄来

6.Stata叫你回家听音乐了!

7.一言不合就用stata写邮件(Outlook/Foxmail)

8.听说你想知道怎么用stata画地图?

9.I have a Stata, I have a python

10.I have a Stata, I have a Python之二——pdf转word


关于我们

微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。

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

投稿邮箱:statatraining@163.com

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

欢迎关注爬虫俱乐部



微信扫一扫
关注该公众号