如何用ggplot 添加文字2在地图上添加饼图

求教!关于R语言生成多个饼图的问题。_r语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:8,477贴子:
求教!关于R语言生成多个饼图的问题。收藏
数据是这样的,一共9条数据,分A,B,C三个组,我想把每组里的3个数画一个饼图,就是同时生成3张饼图,请问R语言如何实现呢?
动态程序员语言,汇道IT培训「实力教学」大专以上学员,0元入学,理论+实操,120天精通!汇道专注于动态程序员语言,名师授课,小班教学,可免费试听,火热报名中,赶紧申请!
opar&-par()par(mfrow=c(1,3))data&-read.xls(‘你的文件名’)for(i in 1:3)
pie(data[(i*3-2):(i*3),2],labels=paste(unique(data[,1])[i],c(1:3))) }
最后恢复默认设置par(opar)
可以用ggplot2画,然后使用fact就可以分片。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或主题:如何用ggplot2在地图上添加饼图?? | COS论坛 | 统计之都ggplot2各种图的快速入门_风是你-晴也是你_新浪博客
ggplot2各种图的快速入门
常见图快速入门
在介绍各种图之前先认识美学属性(也叫图形属性)
color:轮廓色
fill:填充色
shape:点形状
&&&&dotted
size:点大小,线条大小(粗细)
alpha:透明度,0-1:完全透明-完全不透明
width:宽度(条形图等)
binwidth:组距(直方图等)
label:名称(如x,y,legend等)
angle:角度
hjust:水平平移
vjust:垂直平移
group:分组
position:位置调整
ggplot(data=mpg,aes(x=displ,y=hwy))+
geom_point(color='grey')#轮廓色为灰色(实质效果:填充部分也为灰色)
ggplot(data=mpg,aes(x=displ,y=hwy))+
geom_point(fill='blue')#点图无填充色选项,所以等于空设置;而color默认黑色
ggplot(data=mpg,aes(x=displ,y=hwy))+
geom_point(aes(color=cyl),alpha=I(0.6))&#设置透明度,alpha范围是0
#到1,全透明到不透明;I()表示设定,跟映射函数aes()相对
ggplot(data=mpg,aes(x=displ,y=hwy))+
geom_point(aes(color=factor(cyl)),alpha=0.6)&&&&#cyl为整数,系统识别#默认是连续变量,所以生成的图例是连续型颜色图例;factor使之因子化
ggplot(data=mpg,aes(x=displ,y=hwy))+
geom_point(aes(color=factor(cyl),shape=factor(cyl)),alpha=0.6)
#将cyl映射至形状属性
ggplot(data=mpg,aes(x=displ,y=hwy))+
geom_line(color='grey',size=2)&&&
#感觉无特别之处,就不出图了
ggplot(data=mpg,aes(x=factor(displ),y=hwy))+
geom_bar(stat='identity',width=0.8,color='green',fill='grey')
#stat是指统计变换;#stat='identity'是指不进行统计变换即hwy就是纵
#坐标值因为displ出现众多的重复值,所以分组更多,纵坐标值不断累加
#width为组距,color为轮廓色(可以看到y值累加上去),fill为填充色
ggplot(data=mpg,aes(x=displ))+
geom_bar(stat='density')
#统计变换为密度即y为displ的密度分布;注意,这里不需要给y映射变量
#统计变换为bin,中文翻译是bin封箱,其过程是生成变量count(对x计数),#density(一维密度估计),x(组的中心估计)——默认利用count和x;如若#要引用这几个变量,则在变量左右加双圆点,譬如&&&&&
..density..
仅限于x为连续型变量,如果x为离散型则该函数报错——此时可以利用条线图来绘制直方图
ggplot(data=mpg,aes(x=displ,fill=fl))+
geom_histogram(binwidth=0.2,position=”stack”)
#binwidth&为The
width of the bins;不同于条形图的width
#position是指位置调整,stack是堆叠即同组几何对象堆叠
​ggplot(data=mpg,aes(x=displ,fill=fl))+
geom_histogram(binwidth=0.4,position='dodge')
#position是指位置调整,dodge是同组几何对象并列
位置调整的参数还有:fill&&&&
ggplot(data=mpg,aes(x=factor(fl),y=hwy))+
geom_boxplot(color='grey')
ggplot(data=mpg,aes(x=1,y=hwy))+
geom_boxplot(fill='grey',color='blue') #hwy不分组
ggplot(data=mpg,aes(x=1,y=hwy))+
geom_boxplot(fill='grey',color='blue',outlier.colour=
"red", outlier.shape =
#高亮异常值并赋予特定的几何对象
曲线密度图
#使用geom_density
ggplot(data=mpg,aes(x=displ,fill=fl))+geom_density(color='white',size=0.1,alpha=I(0.3))
ggplot(data=mpg,aes(x=displ,y=..density..))+geom_histogram(fill='grey',binwidth=0.18,alpha=I(0.3))+geom_density(color='white',size=0.8)
#几乎看不到密度曲线。原因:直方图和密度图结合在一起。直方图中bin变换生成y变量有count和density,默认使用前者,这样由于count很大,density很小(总是小于1),就会值得密度线处于低位,难以看到,所以需要y=..density..(引用bin变换的数据必须前后加双圆点)
ggplot(data=mpg,aes(x=displ))+geom_histogram(fill='grey',binwidth=0.18,alpha=I(0.3))+geom_density(color='white',size=0.8)
​​​
频数多边形图
geom_freqpoly()
原理是跟直方图一样的,其中binwidth参数必须给出,频数多边形图就小编接触的环境来说,几乎没见用过——可能直方图或密度图更流行吧。
geom_polygon
jiheti&-read.csv("C:\\Users\\Administrator\\Desktop\\jiheti.csv")
ggplot(data=jiheti,aes(x=x,y=y,linetype=factor(d)))+
geom_polygon(color='purple',fill='grey',alpha=I(0.0001),size=0.3)
这是什么鬼?!小编原想画个水瓶而已!
矩形图+光栅图+瓦片图
矩形图geom_rect——xmax,
xmin, ymax,
ymin四个参数是基础参数;不含hjust&&&
vjust调节参数
光栅图geom_raster——x,y是基础参数,含hjust&
vjust调节参数(默认值都为0.5,取值范围0-1)
瓦片图geom_tile()——x,y是基础参数
先看矩形图
dt&-data.frame(
x1=c(1,4),
x2=c(3,6),
y1=c(1,4),
ggplot(data=dt,aes(xmin=x1,xmax=x2,ymin=y1,ymax=y2))+
geom_rect(fill=c('purple','blue'),alpha=c(I(0.2),I(0.6)))
如果将上面程序微调为
ggplot(data=NULL,aes(xmin=c(1,4),xmax=c(3,6),ymin=c(1,4),ymax=c(3,6))+
geom_rect(fill=c('purple','blue'),alpha=c(I(0.2),I(0.6)))
如果只是单行数据
ggplot(data=NULL,aes(xmin=1,xmax=3,ymin=1,ymax=3))+geom_rect(fill='blue',alpha=I(0.2))
####启示我们当数据行数&=2时,不宜使用data=NULL这种数据不封装的数据形式(实际上整个ggplot2的学习中,Haddey一直建议使用封箱的数据)
再看光栅图
我们来看下hjust和vjust是如何调节水平位置和垂直位置
dt&-data.frame(
ggplot(data=dt,aes(x=x,y=y))+
geom_raster(fill=c('purple','blue'),alpha=c(I(0.2),I(0.6)),vjust=0)
&#整个矩形块在中心点(2,2)和(5,5)以下,vjust=0
ggplot(data=dt,aes(x=x,y=y))+
geom_raster(fill=c('purple','blue'),alpha=c(I(0.2),I(0.6)),vjust=0.5)
#整个矩形块在中心点(2,2)和(5,5)中间,vjust=0.5
ggplot(data=dt,aes(x=x,y=y))+
geom_raster(fill=c('purple','blue'),alpha=c(I(0.2),I(0.6)),vjust=1)
​#整个矩形块在中心点(2,2)和(5,5)上,vjust=1
不难看出,vjust从0到1的过程就是矩形块y正方向平移的过程;
hjust类比vjust即可
注意到raster的数据中只是提供了中心点,而无矩形块的边界,结合上图两个矩形块相接触的特点,不难得出系统设置了光栅图中矩形块同时同速率由中心散发直到跟其他矩形块接触(只要发生一次接触即可)为止。
后看瓦片图
dt&-data.frame(
x=c(2,5,9),
y=c(2,5,9)
ggplot(data=dt,aes(x=x,y=y))+
geom_tile(fill=c('purple','blue','green'),alpha=c(I(0.2),I(0.6),I(0.3)))
瓦片图中的矩形块大小原理类似光栅图
综上:rect&和raster
/tile对数据要求不同,前者要求更多,可以控制更多的细节;后者对数据量要求不大,因而可以迅速生成图。
​矩形图+光栅图+瓦片图中,光栅图和瓦片图用得比较多,用处常见的有热图(x,y给定,fill映射到一个你要反映量大小的变量,比如你要绘制一张不同城市不同月份空气质量指数(AQI)的分布情况,就可绘制热图)
ggplot(data=mpg,aes(x=1,fill=fl))+geom_bar()+
coord_polar(theta='y')
​coord_polar是极坐标的意思,区别以往的笛卡尔坐标。coord_polar()作用是把把笛卡尔坐标变换为极坐标。该函数有theta,start,direction三个参数,后者者顶多是图的微调,需要了解可以查看帮助文件,theta才是关键。极坐标参数theta有两个指标半径和角度,就饼图而言,各部分内容的角度不同,半径相同;而默认theta=”x”,即将x映射为角度,剩下的y映射为半径。这些为前期准备,下面一步步分解这个过程。
step:&&生成条形图,其中各部分的比例关系用y反映。
ggplot(data=mpg,aes(x=1,fill=fl))+geom_bar()
step:&将坐标极坐标化,y映射为角度(此时x恒等于1,即半径相同)
ggplot(data=mpg,aes(x=1,fill=fl))+geom_bar()+
coord_polar(theta='y')
ggplot(data=mpg,aes(x=1,fill=fl))+geom_bar()+
coord_polar(theta=”x”)&&&&&
#如果x映射为角度,则y映射为半径,生成眼图
此外,MASS包中的pie函数也可以绘制饼图。
风是你-晴也是你
博客等级:
博客积分:0
博客访问:2,712
关注人气:0
荣誉徽章:君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
手把手教你使用ggplot2绘制中国地图
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口利用ggplot2画出各种漂亮图片详细教程
我的图书馆
利用ggplot2画出各种漂亮图片详细教程
1、Why use ggplot2
2、数据(Data)和映射(Mapping)
3、几何对象(Geometric)
4、标尺(Scale)
5、统计变换(Statistics)
6、坐标系统(Coordinante)
7、图层(Layer)
8、分面(Facet)
9、主题(Theme)
10、二维密度图
11、ggplot2实战
《使用ggplot2画图》
作者:Guangchuang Yu
原文链接:http://ygc.name//use-ggplot2/
1、Why use ggplot2
ggplot2是我见过最human friendly的画图软件,这得益于Leland Wilkinson在他的著作《The Grammar of Graphics》中提出了一套图形语法,把图形元素抽象成可以自由组合的成分,Hadley Wickham把这套想法在R中实现。
为什么要学习ggplot2,可以参考ggplot2: 数据分析与图形艺术的序言(btw: 在序言的最后,我被致谢了)。
Hadley Wickham也给出一堆理由让我们说服自己,我想再补充一点,Hadley Wickham是学医出身的,做为学生物出身的人有什么理由不支持呢:)
ggplot2基本要素
数据(Data)和映射(Mapping)
几何对象(Geometric)
标尺(Scale)
统计变换(Statistics)
坐标系统(Coordinante)
图层(Layer)
分面(Facet)
主题(Theme)
这里将从这些基本要素对ggplot2进行介绍。
2、数据(Data)和映射(Mapping)
下面以一份钻石的数据为例,这份数据非常大,随机取一个子集来画图。
require(ggplot2)
data(diamonds)
set.seed(42)
small &- diamonds[sample(nrow(diamonds), 1000), ]
head(small)
cut color clarity depth table price
## 4 Very Good
470 4.14 4.17 2.56
658 4.32 4.34 2.67
summary(small)
1st Qu.:0.400
1st Qu.:61.0
Median :0.710
Very Good:227
Median :61.8
3rd Qu.:1.070
3rd Qu.:62.5
(Other): 37
1st Qu.:56.0
1st Qu.:4.74
1st Qu.:4.76
Median :57.0
Median : 2595
Median :5.75
Median :5.78
3rd Qu.:59.0
3rd Qu.: 5495
3rd Qu.:6.60
3rd Qu.:6.61
1st Qu.:2.92
Median :3.55
3rd Qu.:4.07
画图实际上是把数据中的变量映射到图形属性上。以克拉(carat)数为X轴变量,价格(price)为Y轴变量。
p &- ggplot(data = small, mapping = aes(x = carat, y = price))
上面这行代码把数据映射XY坐标轴上,需要告诉ggplot2,这些数据要映射成什么样的几何对象,下面以散点为例:
p + geom_point()
几何对象将在下面的小节介绍,这一节,关注的是数据和图形属性之间的映射。
如果想将切工(cut)映射到形状属性。只需要:
p &- ggplot(data=small, mapping=aes(x=carat, y=price, shape=cut))
p+geom_point()
再比如我想将钻石的颜色(color)映射颜色属性:
p &- ggplot(data=small, mapping=aes(x=carat, y=price, shape=cut, colour=color))
p+geom_point()
3、几何对象(Geometric)
在上面的例子中,各种属性映射由ggplot函数执行,只需要加一个图层,使用geom_point()告诉ggplot要画散点,于是所有的属性都映射到散点上。
geom_point()完成的就是几何对象的映射,ggplot2提供了各种几何对象映射,如geom_histogram用于直方图,geom_bar用于画柱状图,geom_boxplot用于画箱式图等等。
不同的几何对象,要求的属性会有些不同,这些属性也可以在几何对象映射时提供,比如上一图,也可以用以下语法来画:
p &- ggplot(small)
p+geom_point(aes(x=carat, y=price, shape=cut, colour=color))
ggplot2支持图层,我通常把不同的图层中共用的映射提供给ggplot函数,而某一几何对象才需要的映射参数提供给geom_xxx函数。
这一小节我们来看一下各种常用的几何对象。
直方图最容易,提供一个x变量,画出数据的分布。
ggplot(small)+geom_histogram(aes(x=price))
同样可以根据另外的变量给它填充颜色,比如按不同的切工:
ggplot(small)+geom_histogram(aes(x=price, fill=cut))
也可以将其分开,side-by-side地画直方图。
ggplot(small)+geom_histogram(aes(x=price, fill=cut), position="dodge")
还可以使用position="fill",按照相对比例来画。
ggplot(small)+geom_histogram(aes(x=price, fill=cut), position="fill")
柱状图非常适合于画分类变量。在这里以透明度(clarity)变量为例。按照不同透明度的钻石的数目画柱状图。
ggplot(small)+geom_bar(aes(x=clarity))
柱状图两个要素,一个是分类变量,一个是数目,也就是柱子的高度。数目在这里不用提供,因为ggplot2会通过x变量计算各个分类的数目。
当然你想提供也是可以的,通过stat参数,可以让geom_bar按指定高度画图,比如以下代码:
ggplot()+geom_bar(aes(x=c(LETTERS[1:3]),y=1:3), stat="identity")
柱状图和直方图是很像的,直方图把连续型的数据按照一个个等长的分区(bin)来切分,然后计数,画柱状图。而柱状图是分类数据,按类别计数。我们可以用前面直方图的参数来画side-by-side的柱状图,填充颜色或者按比例画图,它们是高度一致的。
柱状图是用来表示计数数据的,但在生物界却被经常拿来表示均值,加上误差来表示数据分布,这可以通常图层来实现,我将在图层一节中给出实例。
密度函数图
说到直方图,就不得不说密度函数图,数据和映射和直方图是一样的,唯一不同的是几何对象,geom_histogram告诉ggplot要画直方图,而geom_density则说我们要画密度函数图,在我们熟悉前面语法的情况下,很容易画出:
ggplot(small)+geom_density(aes(x=price, colour=cut))
ggplot(small)+geom_density(aes(x=price,fill=clarity))
colour参数指定的是曲线的颜色,而fill是往曲线下面填充颜色。
数据量比较大的时候,用直方图和密度函数图是表示数据分布的好方法,而在数据量较少的时候,比如很多的生物实验,很多时候大家都是使用柱状图+errorbar的形式来表示,不过这种方法的信息量非常低,被Nature Methods吐槽,这种情况推荐使用boxplot。
ggplot(small)+geom_boxplot(aes(x=cut, y=price,fill=color))
geom_boxplot将数据映射到箱式图上,上面的代码,我们应该很熟悉了,按切工(cut)分类,对价格(price)变量画箱式图,再分开按照color变量填充颜色。
ggplot2提供了很多的geom_xxx函数,可以满足我们对各种图形绘制的需求。
geom_abline
geom_bin2d
geom_blank
geom_boxplot
geom_contour
geom_crossbar
geom_density
geom_density2d
geom_dotplot
geom_errorbar
geom_errorbarh
geom_freqpoly
geom_histogram
geom_hline
geom_jitter
geom_linerange
geom_point
geom_pointrange
geom_polygon
geom_quantile
geom_raster
geom_ribbon
geom_segment
geom_smooth
geom_violin
geom_vline
4、标尺(Scale)
前面我们已经看到了,画图就是在做映射,不管是映射到不同的几何对象上,还是映射各种图形属性。这一小节介绍标尺,在对图形属性进行映射之后,使用标尺可以控制这些属性的显示方式,比如坐标刻度,可能通过标尺,将坐标进行对数变换;比如颜色属性,也可以通过标尺,进行改变。
ggplot(small)+geom_point(aes(x=carat, y=price, shape=cut, colour=color))+scale_y_log10()+scale_colour_manual(values=rainbow(7))
以数据(Data)和映射(Mapping)一节中所画散点图为例,将Y轴坐标进行log10变换,再自己定义颜色为彩虹色。
5、统计变换(Statistics)
统计变换对原始数据进行某种计算,然后在图上表示出来,例如对散点图上加一条回归线。
ggplot(small, aes(x=carat, y=price))+geom_point()+scale_y_log10()+stat_smooth()
这里就不按颜色、切工来分了,不然ggplot会按不同的分类变量分别做回归,图就很乱,如果我们需要这样做,我们可以使用分面,这个将在后面介绍。
这里,aes所提供的参数,就通过ggplot提供,而不是提供给geom_point,因为ggplot里的参数,相当于全局变量,geom_point()和stat_smooth()都知道x,y的映射,如果只提供给geom_point(),则相当于是局部变量,geom_point知道这种映射,而stat_smooth不知道,当然你再给stat_smooth也提供x,y的映射,不过共用的映射,还是提供给ggplot好。
ggplot2提供了多种统计变换方式:
stat_abline
stat_contour
stat_identity
stat_summary
stat_density
stat_summary2d
stat_bin2d
stat_density2d
stat_quantile
stat_summary_hex
stat_bindot
stat_smooth
stat_unique
stat_binhex
stat_function
stat_spoke
stat_vline
stat_boxplot
stat_hline
stat_ydensity
统计变换是非常重要的功能,我们可以自己写函数,基于原始数据做某种计算,并在图上表现出来,也可以通过它改变geom_xxx函数画图的默认统计参数。
比如我在Proteomic investigation of the interactome of FMNL1 in hematopoietic cells unveils a role in calcium-dependent membrane plasticity的图一中,就把boxplot的中位线替换成了平均值来作图。
6、坐标系统(Coordinante)
坐标系统控制坐标轴,可以进行变换,例如XY轴翻转,笛卡尔坐标和极坐标转换,以满足我们的各种需求。
坐标轴翻转由coord_flip()实现
ggplot(small)+geom_bar(aes(x=cut, fill=cut))+coord_flip()
而转换成极坐标可以由coord_polar()实现:
ggplot(small)+geom_bar(aes(x=factor(1), fill=cut))+coord_polar(theta="y")
这也是为什么之前介绍常用图形画法时没有提及饼图的原因,饼图实际上就是柱状图,只不过是使用极坐标而已,柱状图的高度,对应于饼图的弧度,饼图并不推荐,因为人类的眼睛比较弧度的能力比不上比较高度(柱状图)
还可以画靶心图:
ggplot(small)+geom_bar(aes(x=factor(1), fill=cut))+coord_polar()
以及风玫瑰图(windrose)
ggplot(small)+geom_bar(aes(x=clarity, fill=cut))+coord_polar()
7、图层(Layer)
photoshop流行的原因在于PS 3.0时引入图层的概念,ggplot的牛B之处在于使用+号来叠加图层,这堪称是泛型编程的典范。
在前面散点图上,我们已经见识过,加上了一个回归线拟合的图层。
有了图层的概念,使用ggplot画起图来,就更加得心应手。
做为图层的一个很好的例子是蝙蝠侠logo,batman logo由6个函数组成,在下面的例子中,我先画第一个函数,之后再加一个图层画第二个函数,不断重复这一过程,直到六个函数全部画好。
require(ggplot2)
f1data.frame(x=x,y=y)
d -3*sqrt(33)/7,]
x1data.frame(x2=x2, y2=y2)
p2data.frame(x3=x3, y3=y3)
p3data.frame(x4=x4,y4=y4)
p4data.frame(x5=x5,y5=y5)
p5data.frame(x6=x6,y6=y6)
下面再以生物界中常用的柱状图+误差图为实例,展示ggplot2非常灵活的图层。以我2011年发表的文章Phosphoproteome profile of human lung cancer cell line A549中的westernblot数据为例。
Normaldata.frame(V=c("Normal", "Cancer"), mean=m, sd=s)
8、分面(Facet)
分面可以让我们按照某种给定的条件,对数据进行分组,然后分别画图。
在统计变换一节中,提到如果按切工分组作回归线,显然图会很乱,有了分面功能,我们可以分别作图。
ggplot(small, aes(x=carat, y=price))+geom_point(aes(colour=cut))+scale_y_log10() +facet_wrap(~cut)+stat_smooth()
9、主题(Theme)
通过ggplot画图之后,我们可能还需要对图进行定制,像title, xlab, ylab这些高频需要用到的,自不用说,ggplot2提供了ggtitle(), xlab()和ylab()来实现。
但是这个远远满足不了需求,我们需要改变字体,字体大小,坐标轴,背景等各种元素,这需要通过theme()函数来完成。
ggplot2提供一些已经写好的主题,比如theme_grey()为默认主题,我经常用的theme_bw()为白色背景的主题,还有theme_classic()主题,和R的基础画图函数较像。
别外ggthemes包提供了一些主题可供使用,包括:
theme_economist theme_economist_white
theme_excel
theme_foundation
theme_igray
theme_solarized
theme_stata
theme_tufte
require(ggthemes)
p + theme_wsj()
在2013年发表的文章Putative cobalt- and nickel-binding proteins and motifs in Streptococcus pneumoniae中的图3就是使用theme_stata来画的。
至于如何改变这些元素,我觉得我之前画囧字的博文可以做为例子:
fdata.frame(x=x,y=y)
详细的说明,可以参考?theme的帮助文档。
10、二维密度图
在这个文档里,为了作图方便,我们使用diamonds数据集的一个子集,如果使用全集,数据量太大,画出来散点就糊了,这种情况可以使用二维密度力来呈现。
ggplot(diamonds, aes(carat, price))+ stat_density2d(aes(fill = ..level..), geom="polygon")+ scale_fill_continuous(high="darkred",low="darkgreen")
11、ggplot2实战
果壳知性里有帖子介绍了个猥琐邪恶的曲线,引来无数宅男用各种工具来画图,甚至于3D动态图都出来了。这里用ggplot2来画。3D版本请猛击此处。
fdata.frame(x=c(x1,x2,x3), y=rep(y,3), type=rep(LETTERS[1:3], each=length(y)))
再来一个蝴蝶图,详见《Modern Applied Statistics with S-PLUS》第一章。
theta data.frame(x=radius*sin(theta), y=radius*cos(theta))
ggplot(dd, aes(x, y))+geom_path()+theme_null()+xlab("")+ylab("")
相关热词:
利用ggplot2画出各种漂亮图片详细教程
发表评论:
TA的最新馆藏[转]&}

我要回帖

更多关于 ggplot2 添加文字 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信