!备忘,方便自己查询,随着使用更新,无参考价值。
Function reference
Top 50 ggplot2 Visualizations
The R Graph Gallery
RStudio Cheatsheets
ggplot2: elegant graphics for data analysis 3rd edition
《R语言数据可视化之美》配套代码
知乎 | ggplot2作图最全教程(上)
知乎 | ggplot2作图最全教程(中)
知乎 | ggplot2作图最全教程(下)
1. 基础
ggplot()
一些想法:
1. ggplot要有两个思想,图层和映射;
图层的前后,达到的效果可能不同
2. 有许多冗余的功能,但要注意这些功能的细微区别;
3. 多看别人的绘图代码,提高对ggplot的理解和学习如何呈现自己的数据;
4. 不需要掌握所有参数,不需要直接生成最终版本的图,哪怕用`AI`再修;
5. ggplot的扩展包很多,不可能都完全学会,总体把握下,学习自己需要的;
6. ......
2. 绘图 geom_*
2.1 一个连续型变量
geom_area()
-
geom_density()
: 密度图 -
geom_dotplot()
: Wilkinson点图 -
geom_frepoly()
: 频数多边形 -
geom_histogram()
: 直方图 geom_qq()
2.2 一个离散型变量
-
geom_bar()
: 柱状图/条形图
2.3 两个连续型变量
geom_label()
-
geom_point()
: 散点图、气泡图 geom_quantile()
-
geom_rug()
: 边际地毯 geom_smooth()
-
geom_text()
: 添加文本
2.4 一个离散型,一个连续型
-
geom_col()
: 条形图/柱状图 -
geom_boxplot()
: 箱线图 -
geom_dotplot()
: -
geom_violin()
: 小提琴图
2.5 两个离散型变量
geom_count()
geom_jitter()
2.6 添加线
geom_segment()
-
geom_hline()
: 添加横线;geom_vline()
: 添加竖线;geom_abline()
: 添加有角度的线
2.7 误差
geom_crossbar()
geom_errorbar()
geom_linerange()
geom_pointrange()
注意一些参数
-
position
dodge
: 避免重叠,并排放置
fill
: 堆叠图形元素并将高度标准为1
identity
: 不做任何调整
jitter
: 给点添加扰动避免重合
stack
: 将图形元素堆叠起来
参考:ggplot2位置调整position stat
-
fill
,color
注意区分 group
3. 统计 stat_*
-
stat_smooth()
method = lm
: 添加线性回归线
- `stat_bin()`、`stat_bin_2d()`、`stat_bin_hex()`
- `stat_sum()`、`stat_count()`、`stat_summary()`、`stat_summary_bin()`、`stat_summary_hex()`、`stat_summary_2d()`
- `stat_boxplot()、stat_density()`、`stat_ydensity()`、`stat_density_2d()`
- `stat_ecdf()`、`stat_identity()`、`stat_unique()`、`stat_function()`、`stat_qq()`、`stat_ellipse()`、`stat_contour()`、`stat_quantile()`
4. 标度scale_*
4.1 离散型变量颜色填充scale_fill_*
、scale_color_*
-
scale_fill_discrete()
,scale_colour_discrete()
: 色轮周围均匀等距色(同hue)
guide
name
-
scale_fill_hue()
,scale_colour_hue()
: 色轮周围均匀等距色(discrete) -
scale_fill_grey()
,scale_colour_grey()
: 灰度调色板,标度范围0 ~ 1(黑色 ~ 白色),默认0.2 ~ 0.8
start = 0.7
end = 0
-
scale_fill_brewer()
,scale_colour_brewer()
: ColorBrewer调色板
palette = "Set3"
-
scale_fill_manual()
,scale_colour_manual()
: 自定义颜色
values = c("red", "blue")
values = c("#CC6666", "#7777DD")
values = c(female="red", male="blue")
-
scale_alpha()
: 透明度
4.2 连续型变量颜色填充scale_fill_*
、scale_color_*
-
scale_fill_gradient()
,scale_colour_gradient()
: 两色渐变
low = "black"
high = "white"
-
scale_fill_gradient2()
,scale_colour_gradient2()
: 三色渐变 -
scale_fill_gradientn()
,scale_colour_gradientn()
: 等间隔的n种颜色的渐变色
colours = c("", "", "", "")
scale_alpha()
4.3 形状大小
scale_shape()
scale_shape_manual()
scale_size()
scale_size_area()
scale_linetype()
scale_radius()
4.4 坐标相关
-
scale_x_discrete()
,scale_y_discrete()
:
limits =
:
breaks =
: 设置刻度线的位置
labels =
: 修改刻度标签文本 -
scale_x_continuous()
,scale_y_continuous()
-
scale_x_reverse()
,scale_y_reverse()
5. 坐标 coord_*
-
coord_fixed()
: 设置x轴和y轴的缩放比例
ratio = 1/2
-
coord_flip()
: 翻转坐标轴 -
coord_cartesian()
:
xlim =
ylim =
expand =
-
coord_map()
: -
coord_quickmap()
: -
coord_trans()
: -
coord_polar()
: 极坐标
6. 主题 theme_*
-
theme_gray()
: 默认主题 -
theme_bw()
、theme_classic()
、theme_void()
- `theme_dark()`、`theme_light()`、`theme_linedraw()`、`theme_minimal()`
-
theme_set()
: 设置当前R会话下的默认主题,如:theme_set(theme_bw())
7. 分面 facet_*
facet_grid()
facet_wrap()
8. 细节
8.1
annotate()
-
labs()
title
: 主标题
subtitle
: 副标题
caption
: 设置图例标题
colour
/fill
-
guides
guide_colourbar
guide_coloursteps
guide_legend
guide_bins
guide_axis
fill = guide_legend(reverse = TRUE)
: 反转图例的顺序
fill = guide_legend(title = "legend title")
: 设置图例标题
8.2 函数外设置
ggtitle()
xlab()
ylab()
-
xlim()
: 设置连续型x坐标轴值域,scale_x_continuous()
的简便写法 -
ylim()
: 设置连续型y坐标轴值域,scale_y_continuous()
的简便写法
8.3 主题元素
theme()
- 文本元素,如,所有文本元素
text = element_text()
1.1family
:
1.2face
: 字体
1.3colour
: 文字颜色
1.4size
: 字体大小
1.5hjust
: 横向对齐
1.6vjust
: 纵向对齐
1.7angle
: 旋转角度
1.8lineheight
: 行间距倍数
注意:文本几何对象的文本属性与主题元素的基本一致。除了字体为fontface
。
其他文本元素:
`plot.title`: 标题文本外观
`legend.text`: 图例项文本的外观;`legend.title()`: 图例标题
`axis.title`: 双轴标签的外观;`axis.title.x`: x轴、`axis.title.y`: y轴
`axis.text`: 双轴刻度标签的外观;`axis.text.x`: x轴;`axis.text.y`: y轴
`strip.text`: 双向分面标签的外观;`strip.text.x`: 横向;`strip.text.y`: 纵向
在书上看到
axis.ticks
与axis.text
一样,也用于双轴刻度标签外观的设置,但不知道为啥用了没效果。
- 矩形元素,如所有矩形元素
rect = element_rect()
2.1colour
:
2.2fill
:
2.3size
:
其他矩形元素:
`plot.background`: 整个图形的背景
`panel.background`: 绘图区域背景;`panel.border`: 绘图区域边框
`legend.background`: 图例的背景;`legend.key`: 图例边框
`strip.background`: 分面标签的背景
- 线条元素,如所有线条元素
line = element_line()
其他线条元素:
`axis.line`: 坐标轴线
`panel.grid.major`: 主网格线;`panel.grid.major.x`: 纵向;`panel.grid.major.y`: 横向
`panel.grid.minor`: 次网格线;`panel.grid.minor.x`: 纵向;`panel.grid.minor.y`: 横向
-
legend.position = "right"
: 图例的位置,还可设置为"top"
、"bottom"
、"left"
和c(1, 0)
这样的位置坐标
设置为"none"
移除所有图例 -
legend.justification = c(1, 0)
原图地址:https://henrywang.nl/ggplot2-theme-elements-demonstration/
9. 其他重要的相关的包
9.1 主题、颜色搭配
ggsci
cowplot
9.2 多图拼接
patchwork
9.3 统计运算
ggsignif
网友评论