# install.packages("ggpol")
library(ggpol)
区间高亮标记
# geom_tshighlight 可以用来高亮时间序列中的一个时段
ggplot(economics, aes(x = date, y = unemploy)) +
geom_line() +
geom_tshighlight(
aes(xmin = as.Date("01/01/1990", format = "%d/%m/%Y"),
xmax = as.Date("01/01/2000", format = "%d/%m/%Y")),
alpha = 0.005, fill = "yellow") +
ggtitle(label = "geom_tshighlight 可以用来高亮时间序列中的一个时段")
半箱线图和一半 jitter 散点图
# geom_boxjitter 用于绘制混合的箱线图:
# 一半箱线图和一半 jitter 散点图,以及可选的误差线。
df <- data.frame(
score = rnorm(100, 4, 1),
gender = sample(c("M", "F"), 100, replace = TRUE),
genotype = factor(sample(1:4, 100, replace = TRUE))
)
# 如果要设置点的填充色, 则需要指定 jitter.shape 为 21-25
ggplot(df) +
geom_boxjitter(aes(x = genotype, y = score, fill = gender),
jitter.shape = 21, jitter.color = NA,
jitter.params = list(height = 0, width = 0.04),
outlier.color = NA, errorbar.draw = TRUE) +
scale_fill_manual(values = c("#fb8072", "#80b1d3")) +
theme_minimal() +
ggtitle(label="geom_boxjitter:一半箱线图和一半 jitter 散点图")
# 如果我们关注离群点,想对这些点进行高亮,# 可以设置 outlier.intersect = TRUE,
# 并用 outlier.shape 和 outlier.size 来设置点的形状和大小
# 如果将 boxplot.expand 参数设置为 TRUE,则会隐藏 jitter 点图,
# 其功能就类似于 geom_boxplot 绘制完整的箱线图,但添加了误差线
混淆矩阵
## geom_confmat 可以用于绘制混淆矩阵
x <- sample(LETTERS[seq(4)], 50, replace = TRUE)
y <- sample(LETTERS[seq(4)], 50, replace = TRUE)
ggplot() +
geom_confmat(aes(x = x, y = y), normalize = TRUE, text.perc = TRUE)
轴共享分面
## 轴共享分面
# facet_share 用于生成具有共享轴标签的分面图,由于该函数只是实验性的,
# 目前只支持两个分面共享同一个轴。
#
# 如果想要将轴以镜像的方式放置,需要将其中一个分面乘上 -1,
# 如果想要水平方式,则将放置在左边的分面乘上 -1,
# 如果是竖直放置,则将下面的分面乘上 -1。
# 但是这样会改变轴标签,需要设置 reverse_num = TRUE
df <- data.frame(sex = sample(c("M", "F"), 1000, replace = TRUE),
age = rnorm(1000, 45, 12))
df$age_bins <- cut(df$age, 15)
df$count <- 1
df <- aggregate(count ~ sex + age_bins, data = df, length)
df_h <- df
df_h$count <- ifelse(df_h$sex == "F", df_h$count * -1, df_h$count)
ggplot(df_h, aes(x = age_bins, y = count, fill = sex)) +
geom_bar(stat = "identity") +
facet_share(~sex, dir = "h", scales = "free", reverse_num = TRUE) +
coord_flip() +
scale_fill_manual(values = c("#fb8072", "#80b1d3")) +
ggtitle(label = "轴共享分面")