如何使用 ggtext 为 r 中的轴数据标签着色?
how to use ggtext to color axis data labels in r?
我遇到了从 https://wilkelab.org/ggtext/ 到使用 element_markdown()
为轴数据标签着色的 ggtext
包,并尝试为我的轴标签着色但失败了。
代码(没有ggtext):
library(tidyverse)
read.csv("https://raw.githubusercontent.com/johnsnow09/covid19-df_stack-code/main/df_stack_limited.csv") %>%
ggplot(aes(x = Cases_type, y = Country.Region)) +
geom_point(shape = 21, aes(size = Cases_size, color = Cases_type), fill="#f8f2e4", stroke=3) +
# theme_minimal() +
theme_wsj() +
theme(axis.text.x = element_text(angle = 90),
axis.text = element_text(size = 8),
legend.position = "none",
plot.title = element_text(face = "bold", family = "serif", size = 20),
plot.subtitle = element_text(face = "plain", family = "serif", size = 12),
plot.caption = element_text(face = "plain", family = "serif", size = 9)) +
scale_color_tableau(palette = "Tableau 10") +
# scale_color_wsj(palette = "colors6") +
facet_wrap(~Date) +
labs(title = "Top 5 Countries for all type of Daily cases",
subtitle = "For Latest 7 days separated by each date",
caption = "created by ViSa (SciArt!!)") +
coord_cartesian(clip = "off")
现在,如果我添加 ggtext
为 x-axis
数据标签着色,那么我会收到错误消息
library(tidyverse)
library(ggtext)
color = c("#2596be", "#f28e2b", "#e15759")
read.csv("https://raw.githubusercontent.com/johnsnow09/covid19-df_stack-code/main/df_stack_limited.csv") %>%
mutate(Cases_type = glue("<i style='color:{color}>{Cases_type}</i>'")) %>%
ggplot(aes(x = Cases_type, y = Country.Region)) +
geom_point(shape = 21, aes(size = Cases_size, color = Cases_type), fill="#f8f2e4", stroke=3) +
# theme_minimal() +
theme_wsj() +
theme(axis.text.x = element_text(angle = 90),
axis.text = element_text(size = 8),
legend.position = "none",
plot.title = element_text(face = "bold", family = "serif", size = 20),
plot.subtitle = element_text(face = "plain", family = "serif", size = 12),
plot.caption = element_text(face = "plain", family = "serif", size = 9)) +
theme(axis.text.x = element_markdown()) +
scale_color_tableau(palette = "Tableau 10") +
# scale_color_wsj(palette = "colors6") +
facet_wrap(~Date) +
labs(title = "Top 5 Countries for all type of Daily cases",
subtitle = "For Latest 7 days separated by each date",
caption = "created by ViSa (SciArt!!)") +
coord_cartesian(clip = "off")
我认为你需要改变
"<i style='color:{color}>{Cases_type}</i>'"
至
"<i style='color:{color}'>{Cases_type}</i>"
问题是您尝试 glue
长度为 3 的 color
向量与长度为 105 的向量的 Cases_type
列。而是 color
命名向量并使用 color[Cases_type]
确保您分配正确的颜色。此外,您的 glue
语句中缺少引号。
library(tidyverse)
library(ggtext)
library(glue)
library(ggthemes)
color = c(Daily_cases = "#2596be", Daily_deaths = "#f28e2b", Daily_recovered = "#e15759")
d <- read.csv("https://raw.githubusercontent.com/johnsnow09/covid19-df_stack-code/main/df_stack_limited.csv") %>%
mutate(Cases_type = glue("<i style='color: {color[Cases_type]}'>{Cases_type}</i>'"))
d %>%
ggplot(aes(x = Cases_type, y = Country.Region)) +
geom_point(shape = 21, aes(size = Cases_size, color = Cases_type), fill="#f8f2e4", stroke=3) +
#theme_minimal() +
theme_wsj() +
theme(axis.text.x = element_text(angle = 90),
axis.text = element_text(size = 8),
legend.position = "none",
plot.title = element_text(face = "bold", family = "serif", size = 20),
plot.subtitle = element_text(face = "plain", family = "serif", size = 12),
plot.caption = element_text(face = "plain", family = "serif", size = 9)) +
theme(axis.text.x = element_markdown()) +
scale_color_tableau(palette = "Tableau 10") +
# scale_color_wsj(palette = "colors6") +
facet_wrap(~Date) +
labs(title = "Top 5 Countries for all type of Daily cases",
subtitle = "For Latest 7 days separated by each date",
caption = "created by ViSa (SciArt!!)") +
coord_cartesian(clip = "off")
我遇到了从 https://wilkelab.org/ggtext/ 到使用 element_markdown()
为轴数据标签着色的 ggtext
包,并尝试为我的轴标签着色但失败了。
代码(没有ggtext):
library(tidyverse)
read.csv("https://raw.githubusercontent.com/johnsnow09/covid19-df_stack-code/main/df_stack_limited.csv") %>%
ggplot(aes(x = Cases_type, y = Country.Region)) +
geom_point(shape = 21, aes(size = Cases_size, color = Cases_type), fill="#f8f2e4", stroke=3) +
# theme_minimal() +
theme_wsj() +
theme(axis.text.x = element_text(angle = 90),
axis.text = element_text(size = 8),
legend.position = "none",
plot.title = element_text(face = "bold", family = "serif", size = 20),
plot.subtitle = element_text(face = "plain", family = "serif", size = 12),
plot.caption = element_text(face = "plain", family = "serif", size = 9)) +
scale_color_tableau(palette = "Tableau 10") +
# scale_color_wsj(palette = "colors6") +
facet_wrap(~Date) +
labs(title = "Top 5 Countries for all type of Daily cases",
subtitle = "For Latest 7 days separated by each date",
caption = "created by ViSa (SciArt!!)") +
coord_cartesian(clip = "off")
现在,如果我添加 ggtext
为 x-axis
数据标签着色,那么我会收到错误消息
library(tidyverse)
library(ggtext)
color = c("#2596be", "#f28e2b", "#e15759")
read.csv("https://raw.githubusercontent.com/johnsnow09/covid19-df_stack-code/main/df_stack_limited.csv") %>%
mutate(Cases_type = glue("<i style='color:{color}>{Cases_type}</i>'")) %>%
ggplot(aes(x = Cases_type, y = Country.Region)) +
geom_point(shape = 21, aes(size = Cases_size, color = Cases_type), fill="#f8f2e4", stroke=3) +
# theme_minimal() +
theme_wsj() +
theme(axis.text.x = element_text(angle = 90),
axis.text = element_text(size = 8),
legend.position = "none",
plot.title = element_text(face = "bold", family = "serif", size = 20),
plot.subtitle = element_text(face = "plain", family = "serif", size = 12),
plot.caption = element_text(face = "plain", family = "serif", size = 9)) +
theme(axis.text.x = element_markdown()) +
scale_color_tableau(palette = "Tableau 10") +
# scale_color_wsj(palette = "colors6") +
facet_wrap(~Date) +
labs(title = "Top 5 Countries for all type of Daily cases",
subtitle = "For Latest 7 days separated by each date",
caption = "created by ViSa (SciArt!!)") +
coord_cartesian(clip = "off")
我认为你需要改变
"<i style='color:{color}>{Cases_type}</i>'"
至
"<i style='color:{color}'>{Cases_type}</i>"
问题是您尝试 glue
长度为 3 的 color
向量与长度为 105 的向量的 Cases_type
列。而是 color
命名向量并使用 color[Cases_type]
确保您分配正确的颜色。此外,您的 glue
语句中缺少引号。
library(tidyverse)
library(ggtext)
library(glue)
library(ggthemes)
color = c(Daily_cases = "#2596be", Daily_deaths = "#f28e2b", Daily_recovered = "#e15759")
d <- read.csv("https://raw.githubusercontent.com/johnsnow09/covid19-df_stack-code/main/df_stack_limited.csv") %>%
mutate(Cases_type = glue("<i style='color: {color[Cases_type]}'>{Cases_type}</i>'"))
d %>%
ggplot(aes(x = Cases_type, y = Country.Region)) +
geom_point(shape = 21, aes(size = Cases_size, color = Cases_type), fill="#f8f2e4", stroke=3) +
#theme_minimal() +
theme_wsj() +
theme(axis.text.x = element_text(angle = 90),
axis.text = element_text(size = 8),
legend.position = "none",
plot.title = element_text(face = "bold", family = "serif", size = 20),
plot.subtitle = element_text(face = "plain", family = "serif", size = 12),
plot.caption = element_text(face = "plain", family = "serif", size = 9)) +
theme(axis.text.x = element_markdown()) +
scale_color_tableau(palette = "Tableau 10") +
# scale_color_wsj(palette = "colors6") +
facet_wrap(~Date) +
labs(title = "Top 5 Countries for all type of Daily cases",
subtitle = "For Latest 7 days separated by each date",
caption = "created by ViSa (SciArt!!)") +
coord_cartesian(clip = "off")