如何更改 R 中 ggrepel 的背景?
How to change background in ggrepel in R?
我在数据可视化方面遇到了问题。
我的代码如下所示:
t <- structure(list(occurrences_article = c(4, 11, 6, 5, 4, 7, 8, 2, 4, 4, 11, 3, 6, 10, 2, 1, 2),
score = c(2, 1.76, 0.9, 1.875, 1.93, 1.92, 1.42, 1.5, 1.6, 1.75, 1.29, 1.5, 2, 1.65, 2, 2, 2
),
Barrier_code = c("information", "beliefs", "trust", "lack_traditional_motivations", "perceived_quality", "proximity", "shortage", "access_criteria", "functioning", "perceived_accessibility", "fees", "perceived_affordability", "lack_of_subsidies", "cultural_ressources", "social_ressources",
"sustainability", "satisfaction"),
Quality_coded = structure(c(1L, 3L, 1L, 2L, 3L, 2L, 3L, 1L, 3L, 2L, 2L, 2L, 3L, 1L, 1L, 3L, 2L
), .Label = c("Low", "Medium", "High"), class = "factor"), treatable_behavioral_intervention = c(1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1)), row.names = c(NA, -17L), class = c("tbl_df", "tbl", "data.frame"))
library(ggplot2)
library(tidyverse)
library(ggrepel)
library(RColorBrewer)
t$Barrier_code <- as.factor(t$Barrier_code)
t$score <- as.numeric(t$score)
t$Quality <- as.numeric(t$Quality)
t$Quality_coded <- as.factor(t$Quality_coded)
ggplot(t, aes(occurrences_article, score, label = Barrier_code, colour = Quality_coded))+
geom_point(size =2)+
geom_label_repel(aes(label = Barrier_code, fill = levels(t$treatable_behavioral_intervention), color = "black"))+
scale_color_brewer(palette = "RdYlGn")
但是生成的图表并不令人满意see
问题是我想用两种不同的颜色更改标签的背景,这取决于 treatable_behavioral_intervention
的两个级别(+ scale_fill_manual(values = setNames(c("lightblue","darkgreen"), levels(t$treatable_behavioral_intervention)))
的尝试失败,也是为了使黄色标签可读..
你能帮帮我吗?
我想这更像是一个打字错误 - 你走在了正确的轨道上。您的代码与已发布的 运行 不符(您的数据存在很大差距,但没关系)。
避免在 aes 中使用 $
,我不太确定您为什么要使用 levels
...
不要!只需使用 as.factor(variable)
。或者也可以 as.character
.
library(ggrepel)
#> Loading required package: ggplot2
t <- structure(list(occurrences_article = c(4, 11, 6, 5, 4, 7, 8, 2, 4, 4, 11, 3, 6, 10, 2, 1, 2),
score = c(2, 1.76, 0.9, 1.875, 1.93, 1.92, 1.42, 1.5, 1.6, 1.75, 1.29, 1.5, 2, 1.65, 2, 2, 2
),
Barrier_code = c("information", "beliefs", "trust", "lack_traditional_motivations", "perceived_quality", "proximity", "shortage", "access_criteria", "functioning", "perceived_accessibility", "fees", "perceived_affordability", "lack_of_subsidies", "cultural_ressources", "social_ressources",
"sustainability", "satisfaction"),
Quality_coded = structure(c(1L, 3L, 1L, 2L, 3L, 2L, 3L, 1L, 3L, 2L, 2L, 2L, 3L, 1L, 1L, 3L, 2L
), .Label = c("Low", "Medium", "High"), class = "factor"), treatable_behavioral_intervention = c(1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1)), row.names = c(NA, -17L), class = c("tbl_df", "tbl", "data.frame"))
t$Barrier_code <- as.factor(t$Barrier_code)
t$score <- as.numeric(t$score)
t$Quality_coded <- as.factor(t$Quality_coded)
ggplot(t, aes(occurrences_article, score, label = Barrier_code, colour = Quality_coded))+
geom_point(size =2)+
geom_label_repel(aes(label = Barrier_code,
fill = as.factor(treatable_behavioral_intervention)# that's the trick
), # changed bracket
color = "black")+
scale_color_brewer(palette = "RdYlGn") +
scale_fill_brewer()
或者,手动定义颜色:
ggplot(t, aes(occurrences_article, score, label = Barrier_code, colour = Quality_coded))+
geom_point(size =2)+
geom_label_repel(aes(label = Barrier_code,
fill = as.factor(treatable_behavioral_intervention)# that's the trick
), # changed bracket
color = "black")+
scale_color_manual(values = c("Red", "Yellow", "Green")) +
scale_fill_brewer()
我在数据可视化方面遇到了问题。
我的代码如下所示:
t <- structure(list(occurrences_article = c(4, 11, 6, 5, 4, 7, 8, 2, 4, 4, 11, 3, 6, 10, 2, 1, 2),
score = c(2, 1.76, 0.9, 1.875, 1.93, 1.92, 1.42, 1.5, 1.6, 1.75, 1.29, 1.5, 2, 1.65, 2, 2, 2
),
Barrier_code = c("information", "beliefs", "trust", "lack_traditional_motivations", "perceived_quality", "proximity", "shortage", "access_criteria", "functioning", "perceived_accessibility", "fees", "perceived_affordability", "lack_of_subsidies", "cultural_ressources", "social_ressources",
"sustainability", "satisfaction"),
Quality_coded = structure(c(1L, 3L, 1L, 2L, 3L, 2L, 3L, 1L, 3L, 2L, 2L, 2L, 3L, 1L, 1L, 3L, 2L
), .Label = c("Low", "Medium", "High"), class = "factor"), treatable_behavioral_intervention = c(1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1)), row.names = c(NA, -17L), class = c("tbl_df", "tbl", "data.frame"))
library(ggplot2)
library(tidyverse)
library(ggrepel)
library(RColorBrewer)
t$Barrier_code <- as.factor(t$Barrier_code)
t$score <- as.numeric(t$score)
t$Quality <- as.numeric(t$Quality)
t$Quality_coded <- as.factor(t$Quality_coded)
ggplot(t, aes(occurrences_article, score, label = Barrier_code, colour = Quality_coded))+
geom_point(size =2)+
geom_label_repel(aes(label = Barrier_code, fill = levels(t$treatable_behavioral_intervention), color = "black"))+
scale_color_brewer(palette = "RdYlGn")
但是生成的图表并不令人满意see
问题是我想用两种不同的颜色更改标签的背景,这取决于 treatable_behavioral_intervention
的两个级别(+ scale_fill_manual(values = setNames(c("lightblue","darkgreen"), levels(t$treatable_behavioral_intervention)))
的尝试失败,也是为了使黄色标签可读..
你能帮帮我吗?
我想这更像是一个打字错误 - 你走在了正确的轨道上。您的代码与已发布的 运行 不符(您的数据存在很大差距,但没关系)。
避免在 aes 中使用 $
,我不太确定您为什么要使用 levels
...
不要!只需使用 as.factor(variable)
。或者也可以 as.character
.
library(ggrepel)
#> Loading required package: ggplot2
t <- structure(list(occurrences_article = c(4, 11, 6, 5, 4, 7, 8, 2, 4, 4, 11, 3, 6, 10, 2, 1, 2),
score = c(2, 1.76, 0.9, 1.875, 1.93, 1.92, 1.42, 1.5, 1.6, 1.75, 1.29, 1.5, 2, 1.65, 2, 2, 2
),
Barrier_code = c("information", "beliefs", "trust", "lack_traditional_motivations", "perceived_quality", "proximity", "shortage", "access_criteria", "functioning", "perceived_accessibility", "fees", "perceived_affordability", "lack_of_subsidies", "cultural_ressources", "social_ressources",
"sustainability", "satisfaction"),
Quality_coded = structure(c(1L, 3L, 1L, 2L, 3L, 2L, 3L, 1L, 3L, 2L, 2L, 2L, 3L, 1L, 1L, 3L, 2L
), .Label = c("Low", "Medium", "High"), class = "factor"), treatable_behavioral_intervention = c(1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1)), row.names = c(NA, -17L), class = c("tbl_df", "tbl", "data.frame"))
t$Barrier_code <- as.factor(t$Barrier_code)
t$score <- as.numeric(t$score)
t$Quality_coded <- as.factor(t$Quality_coded)
ggplot(t, aes(occurrences_article, score, label = Barrier_code, colour = Quality_coded))+
geom_point(size =2)+
geom_label_repel(aes(label = Barrier_code,
fill = as.factor(treatable_behavioral_intervention)# that's the trick
), # changed bracket
color = "black")+
scale_color_brewer(palette = "RdYlGn") +
scale_fill_brewer()
或者,手动定义颜色:
ggplot(t, aes(occurrences_article, score, label = Barrier_code, colour = Quality_coded))+
geom_point(size =2)+
geom_label_repel(aes(label = Barrier_code,
fill = as.factor(treatable_behavioral_intervention)# that's the trick
), # changed bracket
color = "black")+
scale_color_manual(values = c("Red", "Yellow", "Green")) +
scale_fill_brewer()