R数据科学-第1章使用ggplot2进行数据可视化-2
5.统计变换
用到ggplot2中diamonds数据集:
ggplot(data=diamonds)+geom_bar(aes(x=cut))

图形显示:高质量切割钻石的数量要多于低质量切割钻石。
要注意的是,count并不是原数据集的变量,而是计算出的新数据。绘图时用来计算新数据的算法称为stat(statistical transformation,统计变换)。通过查看参数stat的值可以知道几何对象的函数使用了哪种统计变换。在这里条形图geom_bar中stat的默认值为count。这说明geom_bar使用stat_count()函数进行统计变换。通常来说,几何对象函数和统计变换函数可以互相转换,上述代码可以通过以下实现:
ggplot(data=diamonds)+stat_count(aes(x=cut))
1)覆盖统计变换
显示表示比例的条形图,而不是计数:
ggplot(data=diamonds)+geom_bar(aes(x=cut,y=..prop..,group=1))

2)强调摘要统计
ggplot(data=diamonds)+stat_summary(aes(x=cut,y=depth),fun.min=min,fun.max=max,fun=median)

6.位置调整
1)区别fill与color
ggplot(data=diamonds)+geom_bar(aes(x=cut,color=cut))

ggplot(data=diamonds)+geom_bar(aes(x=cut,fill=cut))
如果将fill映射到另一个变量,条形图会自动分块叠加起来,每个条形表示cut与clarity的另一种组合。
ggplot(data=diamonds)+geom_bar(aes(x=cut,fill=clarity))

这种堆叠是由position的位置调整功能自动完成的,position有以下三种模式:
identity:将每个对象直接显示在图中,这种方式不太适合条形图,会引起条形图的重叠。如果要用于条形图的话,可以将透明度alpha设置的较小或者fill=NA。
ggplot(diamonds,aes(x=cut,fill=clarity))+geom_bar(alpha=0.2,position='identity')

ggplot(diamonds,aes(x=cut,color=clarity))+geom_bar(position='identity',fill=NA)

fill:效果与堆叠类似,但是每组条形图具有相同的高度,故可以很容易的比较比例。
ggplot(diamonds,aes(x=cut,fill=clarity))+geom_bar(position='fill')

dodge:将每组中的条形依次并列放置,可以很容易的比较每个条形表示的具体值。
ggplot(diamonds,aes(x=cut,fill=clarity))+geom_bar(position='dodge')

此外,还有一种位置调整很适合散点图,position='jitter'(抖动)。它可以给每个数据点添加一个很小的随机扰动,这样就可以把重叠的点分散开。
ggplot(mpg)+geom_point(aes(x=displ,y=hwy),position='jitter')

7.坐标系
1)coord_flip()函数可以交换x轴和y轴,这在绘制水平箱线图或者x轴的标签很长时比较有用。
2)coord_quickmap()可以为地图设置合适的纵横比
3)coord_polar()使用极坐标。极坐标系可以揭示出条形图和鸡冠花图之间的有趣的联系。
ggplot(diamonds)+geom_bar(aes(x=cut,fill=cut),show.legend=FALSE,width=1)+theme(aspect.ratio=1)+labs(x=NULL,y=NULL)->bar
bar+coord_flip()
bar+coord_polar()


8.本章的语法模板
ggplot(data=)+(aes(,stat=,position=)++
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
