如何使用 ggplot2
将本地镜像文件作为 tickslabels 和国旗下的国家名称?
我想实现这样的目标:
数据如下:
countries = c("Norway", "Spain", "Germany", "Canada", "China")
values = c(10, 20, 30, 22, 19)
提前致谢!
最佳答案
可以肯定的是,ggtext
解决方案要简单得多。为了完整起见,您还可以执行以下操作。虽然带来了一些额外的依赖:
library(cowplot)
library(ggplot2)
library(magick)
df <- data.frame(countries = c("Norway", "Spain", "Germany", "Canada", "China"),
values = c(10, 20, 30, 22, 19))
p <- ggplot(df, aes(x = countries, y = values))+
geom_bar(stat = "identity")+
theme_bw()
pimage <- axis_canvas(p, axis = 'x')+
cowplot::draw_image("https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Flag_of_Canada_%28Pantone%29.svg/320px-Flag_of_Canada_%28Pantone%29.svg.png", x = 0.5, scale = 0.5)+
cowplot::draw_image("https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Flag_of_the_People%27s_Republic_of_China.svg/640px-Flag_of_the_People%27s_Republic_of_China.svg.png", x = 1.5, scale = 0.5)+
cowplot::draw_image("https://upload.wikimedia.org/wikipedia/commons/thumb/b/ba/Flag_of_Germany.svg/320px-Flag_of_Germany.svg.png", x = 2.5, scale = 0.5)+
cowplot::draw_image("https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Flag_of_Norway.svg/320px-Flag_of_Norway.svg.png", x = 3.5, scale = 0.5)+
cowplot::draw_image("https://upload.wikimedia.org/wikipedia/en/thumb/9/9a/Flag_of_Spain.svg/320px-Flag_of_Spain.svg.png", x = 4.5, scale = 0.5)
ggdraw(insert_xaxis_grob(p, pimage, position = "center"))
关于r - 使用 ggplot2 将带有文本的图像作为刻度标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63172183/