首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用带和不带黑色填充的2个形状为2 x 2实验处理设计制作ggplot2散点图图例

如何使用带和不带黑色填充的2个形状为2 x 2实验处理设计制作ggplot2散点图图例
EN

Stack Overflow用户
提问于 2019-07-13 05:46:11
回答 1查看 41关注 0票数 0

我有一个2x2的实验设计,我正在研究平均海胆丰度和珊瑚招募之间的关系。这项研究有两个地点(Waikiki和Hanauma Bay)和两个避难所处理(低和高)。我想制作一个图例,其中这4个独特的站点x避难所组合(Waikiki - Low,Waikiki - High,Hanauma Bay - Low,Hanauma Bay - High)由两个与站点(Waikiki和Hanauma Bay)对应的图形形状表示,填充这些形状表示避难所(低和高)。

当我通过将形状映射到站点并将填充映射到避难所来执行此操作时,我得到了下图,其中包含2个独立的站点和避难所图例。我希望在图例中用点的形状表示所有4个站点x避难所的组合,以表示站点,而黑色或白色填充表示避难所。

数据库

代码语言:javascript
复制
urchin_vs_recruitment_summary_data <- structure(list(Site_long = structure(c(2L, 2L, 1L, 1L), .Label = c("Hanauma Bay", 
"Waikiki"), class = "factor"), Treatment_long = c("Closed", "Open", 
"Closed", "Open"), Shelter = structure(c(1L, 2L, 1L, 2L), .Label = c("Low", 
"High"), class = "factor"), recruitment_mean = c(4.16666666666667, 
2.5, 0.833333333333333, 1.16666666666667), recruitment_sd = c(2.96741563579414, 
2.21735578260835, 1.06718737290547, 1.51840559652405), recruitment_lower = c(3.31004755860504, 
1.85990452101095, 0.525262874821961, 0.728340726720569), recruitment_upper = c(5.02328577472829, 
3.14009547898905, 1.14140379184471, 1.60499260661276), urchin_mean = c(0.166666666666667, 
0.375, 3.66666666666667, 22.75), urchin_sd = c(0.372677996249965, 
0.414578098794425, 2.73353657780945, 17.3066701977398), urchin_lower = c(0.0590837959386828, 
0.255321611530458, 2.87756262714768, 17.7539946512794), urchin_upper = c(0.27424953739465, 
0.494678388469542, 4.45577070618566, 27.7460053487206)), row.names = c(NA, 
-4L), vars = c("Site_long", "Treatment_long"), drop = TRUE, indices = list(
    2L, 3L, 0L, 1L), group_sizes = c(1L, 1L, 1L, 1L), biggest_group_size = 1L, labels = structure(list(
    Site_long = structure(c(1L, 1L, 2L, 2L), .Label = c("Hanauma Bay", 
    "Waikiki"), class = "factor"), Treatment_long = c("Closed", 
    "Open", "Closed", "Open")), row.names = c(NA, -4L), class = "data.frame", vars = c("Site_long", 
"Treatment_long"), drop = TRUE), class = c("grouped_df", "tbl_df", 
"tbl", "data.frame"))

代码语言:javascript
复制
urchin_vs_recruitment_plot <- ggplot(data = urchin_vs_recruitment_summary_data, aes(x = urchin_mean, y = recruitment_mean, fill = Shelter, shape = Site_long)) + 
  ggtitle("Urchin Abundance vs Coral Recruitment") +
  geom_point(aes(size = 3)) +
  scale_shape_manual(values = c(21, 24)) +
  coord_cartesian(ylim = c(0,5)) +
  scale_fill_manual(values = c(NA, "black"), guide = guide_legend(override.aes = list(shape = 21))) +
  guides(size = FALSE) +
  theme(text = element_text(size = 15)) +
  geom_errorbar(aes(ymin = recruitment_lower, ymax = recruitment_upper), width = .6) + 
  geom_errorbarh(aes(xmin = urchin_lower, xmax = urchin_upper), height = .15) +
  labs(x = "Mean urchin abundance ± SEM", y = "Mean coral recruitment ± SEM") +
  theme_bw() + theme(panel.border = element_blank(), panel.grid.major = element_blank(), panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"), axis.title = element_text(size = rel(1.5)), axis.text = element_text(size = rel(1.5)), legend.text = element_text(size = rel(1.5)), plot.title = element_text(size = 20, hjust = 0.5, vjust = -1.5), legend.position = c(.8, .8))

如上所述,我想要一个有4个条目的单一图例(怀基基-低,怀基基-高,花间湾-低,花间湾-高)与怀基基-低,填充或黑色三角形的怀基基-低,填充或黑色三角形为怀基基-高,非填充或白色圆圈为花间湾-低,并填充或黑色圆圈为花间湾-高。

EN

回答 1

Stack Overflow用户

发布于 2019-07-13 06:19:44

使用一个具有4个级别的变量。适当设置values

代码语言:javascript
复制
ggplot(
  urchin_vs_recruitment_summary_data, 
  aes(urchin_mean, recruitment_mean, fill = interaction(Site_long, Shelter), shape = interaction(Site_long, Shelter))
) + 
  geom_errorbarh(aes(xmin = urchin_lower, xmax = urchin_upper), height = .15) +
  geom_errorbar(aes(ymin = recruitment_lower, ymax = recruitment_upper), width = .6) + 
  geom_point(size = 5) +
  scale_shape_manual(name = 'site', values = c(21, 24, 21, 24)) +
  scale_fill_manual(name = "site", values = c(NA, NA, 1, 1))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57014353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档