在 ggplot2 中的 x 轴标签下方添加图像
Adding images below x-axis labels in ggplot2
我有这个情节:
这是基于旧的 TidyTuesday 数据集 Astronaut 使用此代码块生成的。
library(tidyverse)
library(ggplot2)
library(ggtext)
astro_Q2_final %>%
ggplot(aes(x = reorder(nationality, proportion), y = proportion)) +
geom_col() +
theme_minimal() +
geom_text(aes(label = round(proportion, 3)), position = position_dodge(width = 0.9),
vjust = -0.25) +
labs(title = "Proportion of Space Travellers who are Female, by Nationality",
x = "Nationality",
y = "Proportion of Female Astronauts")
数据本身很简单——x轴是国籍的字符变量,y轴是对应计算出的比例的整数变量。我想要做的就是在国家名称上方的 x 轴上添加国籍旗帜的图像。我试过这个 photo alignment with graph in r 但没有成功;我认为这与 Claus Wilke 使用 expand.grid
函数创建 data
对象这一事实有关 - 我似乎无法将他正在做的事情转化为我需要用 [=35] 做的事情=].任何帮助将不胜感激。
数据可以在这里找到https://raw.githubusercontent.com/gjpstrain/astro/main/data.csv
所以我又看了一遍 ggtext 文档并包含了这个:
labels <- c(
U.S.S.R/Russia = "<img src = 'Russia.png' width = 100' /><br>USSR/Russia",
China = "<img src = 'China.jpg' width = '100' /><br>China",
Italy = "<img src = 'Italy.png' width = '100' /><br>Italy",
France = "<img src = 'France.jpg' width = '100' /><br>France",
U.S = "<img src = 'US.png' width = '100' /><br>US",
Japan = "<img src = 'Japan.png' width = '100' /><br>Japan",
Canada = "<img src = 'Canada.png' width = '100' /><br>Canada",
U.K = "<img src = 'UK.png' width = 100' /><br>UK",
Korea = "<img src = 'South-Korea.jpg' width = '100' /><br>Korea")
但是当我尝试这个时:
astro_Q2_final %>%
ggplot(aes(x = reorder(nationality, proportion), y = proportion)) +
geom_col() +
scale_x_discrete(name = NULL,
labels = labels)
我得到
加载库ggtext
并在最后添加这一行
astro_Q2_final %>%
ggplot(aes(x = reorder(nationality, proportion), y = proportion)) +
geom_col() +
scale_x_discrete(name = NULL,
labels = labels) +
theme(axis.text.x = ggtext::element_markdown())
如果图像链接正确,您应该会得到想要的视觉效果。
我有这个情节:
这是基于旧的 TidyTuesday 数据集 Astronaut 使用此代码块生成的。
library(tidyverse)
library(ggplot2)
library(ggtext)
astro_Q2_final %>%
ggplot(aes(x = reorder(nationality, proportion), y = proportion)) +
geom_col() +
theme_minimal() +
geom_text(aes(label = round(proportion, 3)), position = position_dodge(width = 0.9),
vjust = -0.25) +
labs(title = "Proportion of Space Travellers who are Female, by Nationality",
x = "Nationality",
y = "Proportion of Female Astronauts")
数据本身很简单——x轴是国籍的字符变量,y轴是对应计算出的比例的整数变量。我想要做的就是在国家名称上方的 x 轴上添加国籍旗帜的图像。我试过这个 photo alignment with graph in r 但没有成功;我认为这与 Claus Wilke 使用 expand.grid
函数创建 data
对象这一事实有关 - 我似乎无法将他正在做的事情转化为我需要用 [=35] 做的事情=].任何帮助将不胜感激。
数据可以在这里找到https://raw.githubusercontent.com/gjpstrain/astro/main/data.csv
所以我又看了一遍 ggtext 文档并包含了这个:
labels <- c(
U.S.S.R/Russia = "<img src = 'Russia.png' width = 100' /><br>USSR/Russia",
China = "<img src = 'China.jpg' width = '100' /><br>China",
Italy = "<img src = 'Italy.png' width = '100' /><br>Italy",
France = "<img src = 'France.jpg' width = '100' /><br>France",
U.S = "<img src = 'US.png' width = '100' /><br>US",
Japan = "<img src = 'Japan.png' width = '100' /><br>Japan",
Canada = "<img src = 'Canada.png' width = '100' /><br>Canada",
U.K = "<img src = 'UK.png' width = 100' /><br>UK",
Korea = "<img src = 'South-Korea.jpg' width = '100' /><br>Korea")
但是当我尝试这个时:
astro_Q2_final %>%
ggplot(aes(x = reorder(nationality, proportion), y = proportion)) +
geom_col() +
scale_x_discrete(name = NULL,
labels = labels)
我得到
加载库ggtext
并在最后添加这一行
astro_Q2_final %>%
ggplot(aes(x = reorder(nationality, proportion), y = proportion)) +
geom_col() +
scale_x_discrete(name = NULL,
labels = labels) +
theme(axis.text.x = ggtext::element_markdown())
如果图像链接正确,您应该会得到想要的视觉效果。