3

我有这个情节:

我的阴谋

该代码块是基于旧的 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 轴上添加民族国旗的图像。我已经尝试将这张照片与 r 中的图表对齐,但没有运气;我认为这与克劳斯威尔克data使用函数创建对象这一事实有关expand.grid- 我似乎无法将他正在做的事情转化为我需要对我的绘图/数据做的事情。任何帮助将非常感激。

数据可以在这里找到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)

我明白了这

4

1 回答 1

4

加载库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())

如果图像链接正确,您应该获得所需的视觉效果。

于 2021-08-27T15:03:51.220 回答