当前位置:   article > 正文

ggplot2【1】:全解析_ggplot详解

ggplot详解

ggplot2大概分为三个部分:
(1)数据层 (2)几何图形层 (3)美学层

函数
数据层ggplot(data,mapping = aes(x,y))
几何图形层geom_bar()/geom_plot()/…
美学层aes(color = factor())

有了基本框架后,代码写起来就不会太乱。
在这里插入图片描述

1、数据层——ggplot()

ggplot(data,mapping=aes(x,y))
  • 1

本人建议数据层只用两个参数即可:数据和映射。因为用何种画图方法、统计方法、美化方式,都可以在接下来两层更改。此做法可以使代码干净易读。

2、几何图形层——geom_x() or stat_x()

初学者比较建议第一种,因为后者我没去了解太多。。
本章学习的是geom_bar,先了解其内置参数。
Usage
两种形式

geom_bar(
  mapping = NULL,
  data = NULL,
  stat = "count",
  position = "stack",
  ...,
  width = NULL,
  na.rm = FALSE,
  orientation = NA,
  show.legend = NA,
  inherit.aes = TRUE
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
 stat_count(
  mapping = NULL,
  data = NULL,
  geom = "bar",
  position = "stack",
  ...,
  width = NULL,
  na.rm = FALSE,
  orientation = NA,
  show.legend = NA,
  inherit.aes = TRUE
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

Arguments

函数描述
statidentity提取横坐标x对应的y值 ;bin提取横坐标x的频数;(还有很多,自己搜索)
positionfill:百分比化后重叠 ;dodge:并列数据,比如说如柱形图的并排方式;identity:不调整位置,默认。jitter:如果严重的重叠,随机抖一抖,让本来重叠的露出点头来。stack:在竖直方向叠罗汉,绘制出来类似条形图
used to set an aesthetic to a fixed value, like colour = “red” or size = 3.
widthBar width
na.rm默认值为FALSE,缺失值移除时会有提示;如果设置为TRUE,则silently removed
orientation层的方向,默认值为美学映射方向即(mapping),如果设置“x”或“y”则可改变。如垂直条形图和水平条形图。
show.legend是否在图层中显示图例,默认T
inherit.aes如果为FALSE,则重写默认的美学,而不是与它们结合。这对于定义数据和美学的辅助函数非常有用,并且不应该从默认的绘图规范中继承行为,例如borders()。

以上即为geom_bar的基本参数,根据需要进行美学修饰即可。

注意柱状图应用于离散变量的频数统计,直方图应用于连续变量的频数统计。 前者函数为geom_bar(),后者为geo_histogram().即,前者需要x,y向量;而后者只需一个向量以计算频数,类似table()
这里其实更好的说明了geom_bar中stat的含义。前者的stat = count,后者stat = bin
更多的stat例如stat = "density"是对频率的计算。geom_bar(…,stat = “density”,…) = geom_density(…);以此类推

stat_x()和geom_x()是非常多变的,需要各取所需的使用。

3、美学(aesthetic)修饰——aes()

1、fill和color都为上色函数,前者是全涂,后者为点涂。同时,图例会以此为标题,要修改则lab(fill/color = name)

操作函数举例
修改名称无论是修改图例名,或坐标轴。都可用labs()ggplot() + labs(fill = “year”,x = “制造商”)
修改颜色scale_color_manual(“图例名称”, values =c(“名称” = “颜色”,…)离散型
scale_fill_manual(“图例名称”, values =c(“名称” = “颜色”,…)离散型
scale_color_brewer(name="…", palette ="…")离散型
scale_fill_brewer(name="…", palette ="…")离散型
修改颜色scale_color_gradient(low="…", high ="…")连续型(渐变色)
scale_fill_gradient(limits =c(…), low ="…", high ="…")连续型
scale_fill_gradient2(low ="…", high ="…", mid ="…", midpoint =…)连续型

platte样式:
platte样式

4、主题——theme()

1、对字体、位置、排版等修改在这里插入图片描述

函数说明
element_blank就空白的意思,例如可以去除图例名称等
element_rect可以为各种加边框,内置参数自查说明书
element_text改字体
element_line对line进行处理

举例公式:theme(element_rect(size =…, color =…, linetype= …, fill =…))
举例图片
在这里插入图片描述
2、主题
在这里插入图片描述
3、分面
在这里插入图片描述
4、其他
坐标轴互换:很有用处

coord_flip()

图例位置

theme(legend.position =“top”,“bottom”,“left”,“right”)

5、画组合图
怎么在一张画布内塞下多个图呢?
利用ggpurb::arrange()

ggpubr::ggarrange(a,b,nrow = 2,ncol = 1,labels = LETTERS[1:2],font.label = list(color = "red"))
  • 1

在这里插入图片描述
6、更其他可供参考
1.修改图例名称
labs(fill=“name”)
2.隐藏图例标题
theme(legend.title=element_blank()
3.修改图例顺序
scale_color_discrete(limits=c(“a”,“d”,“c”))
4.不加legend
+theme(legend.position = “none”)
5.删除legend.title
theme(legend.title = element_blank())
6.修改legend的位置
theme(legend.position = “left”)#(right,top,bottom)
7.修改尺寸大小
theme(legend.text = element_text(colour = “red”,angle=45,size=10,hjust=3,vjust=3,face=“bold”))

8.颜色的修改及一致性
geom_bar(position = “stack”,aes(order=desc(name)))

参考资料

1.快速学习ggplot2
2.ggplot2画柱状图
3.ggplot2一页多图
4.ggplot2之图例修改

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/132108
推荐阅读
相关标签
  

闽ICP备14008679号