前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >facet_share {ggpol} 轴共享分面

facet_share {ggpol} 轴共享分面

作者头像
拴小林
发布2021-10-21 16:54:31
4790
发布2021-10-21 16:54:31
举报
文章被收录于专栏:数据驱动实践
代码语言:javascript
复制
# install.packages("ggpol")
library(ggpol)

区间高亮标记

代码语言:javascript
复制
# 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 散点图

代码语言:javascript
复制
# 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 绘制完整的箱线图,但添加了误差线

混淆矩阵

代码语言:javascript
复制
## 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)

轴共享分面

代码语言:javascript
复制
##  轴共享分面
#  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 = "轴共享分面")
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据驱动实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档