ggplot2【1】:全解析

本文详细介绍了ggplot2的三大核心组成部分:数据层、几何图形层和美学层。通过实例解析geom_bar()函数的使用,包括stat、position等参数。同时,讲解了如何通过aes()进行美学修饰,如颜色填充、图例命名和颜色调整。此外,还提到了主题设置、坐标轴互换、图例位置和组合图的创建。ggplot2提供了丰富的图形定制选项,适用于离散和连续变量的频数统计图表制作。
摘要由CSDN通过智能技术生成

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))

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

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
)
 stat_count(
  mapping = NULL,
  data = NULL,
  geom = "bar",
  position = "stack",
  ...,
  width = NULL,
  na.rm = FALSE,
  orientation = NA,
  show.legend = NA,
  inherit.aes = TRUE
)

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"))

在这里插入图片描述
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之图例修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值