R语言数据可视化 ggplot2基础4 位置与坐标系
我们继续使用ggplot2::diamonds介绍position。
position = “identity”
ggplot(data=diamonds)+
geom_bar(mapping = aes(x = cut, fill = cut), position = "identity")
另外,我们对每一个直方还可以根据另外的变量进行划分,比如用下面的代码,我们可以展示每一种净度在不同档次的切工中所占比率。
ggplot(data=diamonds)+
geom_bar(mapping = aes(x = cut, fill = clarity), position = "identity")
position = “fill”
这种position关系可以用在sub-category比率在组间的横向比较,比如要比较钻石净度在不同切工中所占比率,我们可以用下面的代码:
ggplot(data=diamonds)+
geom_bar(mapping = aes(x = cut, fill = clarity), position = "fill")
position = “dodge”
虽然上面那张图可以让我们做净度的横向比较了,但这张图还是比较丑的,而且我们比较熟悉的不太一样,我们比较熟悉的分category和sub-category展示的直方图是用下面的代码得到的:
扫描二维码关注公众号,回复:
12280422 查看本文章
ggplot(data=diamonds)+
geom_bar(mapping = aes(x = cut, fill = clarity), position = "dodge")
position = “jitter”
这种位置关系比较特殊,它的作用是给每一个数据点加上一点随机噪声,我们用上上讲的散点图为例:
ggplot(data = mpg)+
geom_point(mapping = aes(x=displ,y=hwy),position="identity")
ggplot(data = mpg)+
geom_point(mapping = aes(x=displ,y=hwy),position="jitter")
identity的position导致取值相同的点会重合在一起,看上去就像一个点一样,这不利于我们发现数据是否存在聚类;jitter给点加上随机噪声后能让取值相同的点重叠但不重合,所以能够看出数据的集中性。
关于坐标系,我们之前介绍过两种,对数坐标与笛卡尔坐标,笛卡尔坐标就是直角坐标,用
coord_cartesian()
表示;对数坐标就是基于直角坐标做scaling,用下面的代码实现
scale_y_log10()
scale_x_log10()
coord_cartesian()
我们再另外介绍三种坐标操作,
交换 x x x与 y y y轴的位置:
coord_flip()
ggplot(data = mpg,mapping = aes(x=class,y=hwy))+
geom_boxplot()
ggplot(data = mpg,mapping = aes(x=class,y=hwy))+
geom_boxplot()+coord_flip()
画真实的地图
coord_quickmap()
install.packages("maps")
library(maps)
World <- map_data("world")
ggplot(World, aes(long,lat,group = group))+
geom_polygon(fill = "white", color = "black")+
coord_quickmap()
极坐标
coord_polar()
World <- map_data("world")
ggplot(World, aes(long,lat,group = group))+
geom_polygon(fill = "white", color = "black")+
coord_polar()