189 8069 5689

R语言的ggplot2知识点有哪些

这篇文章主要介绍“R语言的ggplot2知识点有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“R语言的ggplot2知识点有哪些”文章能帮助大家解决问题。

专注于为中小企业提供成都网站设计、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业河北免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

1 数据(Data)和映射(Mapping)

下面以一份钻石的数据为例,这份数据非常大,随机取一个子集来画图。

require(ggplot2)

data(diamonds)

##设置种子,可重复(数字随意)

set.seed(42) 

small <- diamonds[sample(nrow(diamonds), 1000), ]

##查看数据情况

head(small)

summary(small) 

#画图实际上是把数据中的变量映射到图形属性上。以克拉(carat)数为X轴变量,价格(price)为Y轴变量。

p <- ggplot(data = small, mapping = aes(x = carat, y = price))

##上面这行代码把数据映射XY坐标轴上,需要告诉ggplot2,这些数据要映射成什么样的几何对象,下面以散点为例:

p + geom_point()

#如果想将切工(cut)映射到形状属性。(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_area  

geom_bar       geom_bin2d

geom_blank     geom_boxplot  

geom_contour   geom_crossbar

geom_density   geom_density2d   

geom_dotplot   geom_errorbar

geom_errorbarh    geom_freqpoly 

geom_hex       geom_histogram

geom_hline     geom_jitter   

geom_line      geom_linerange

geom_map       geom_path  

geom_point     geom_pointrange

geom_polygon   geom_quantile 

geom_raster    geom_rect

geom_ribbon    geom_rug   

geom_segment   geom_smooth

geom_step      geom_text  

geom_tile      geom_violin

geom_vline

关于“R语言的ggplot2知识点有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注创新互联行业资讯频道,小编每天都会为大家更新不同的知识点。


本文名称:R语言的ggplot2知识点有哪些
文章地址:http://jkwzsj.com/article/gsephi.html

其他资讯