我可以使用哪个R函数将图像链接用作ggplot2条形图中的背景图像? [英] What R function can I use to use a image link as a background image in a ggplot2 bar graph?
本文介绍了我可以使用哪个R函数将图像链接用作ggplot2条形图中的背景图像?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我一直在尝试创建一个简单的程序,该程序将基于专辑长度创建条形图,并以专辑的封面作为图像的背景。然而,我想不出如何将Spotify的图片链接转换成ggplot2可以解析为背景的背景图片。Spotify的Get_Always()只附带了一个指向图像的链接(例如:"
https://i.scdn.co/image/ab67616d0000b273922a12ba0b5a66f034dc9959
")。如何将其转换为ggplot2条形图中的可显示图像,如下所示:
ggplot(data=album_df, aes(x=rev(factor(track_names, track_names)), y=-1 * track_length)) +
ggtitle("Songs vs length")+
annotation_custom(rasterGrob(album_cover,
width = unit(1,"npc"),
height = unit(1,"npc")),
-Inf, Inf, -Inf, Inf)+
geom_bar(stat="identity", position = "identity", color = 'NA', alpha = 0.9, width = 1, fill = 'white') +
scale_y_continuous(expand = c(0, 0), limits = c(-1 * max_track, 0)) +
scale_x_discrete(expand = c(0, 0)) +
theme(axis.title.x=element_blank(),
axis.title.y=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank()
) +
coord_flip()
ANNOTATION_CUSTOM是我当前使用Read as jpeg格式存储背景图像的位置,但这需要我首先下载图像,如果我希望这是一个公共网站,则无法下载。
推荐答案
我不能完全理解您所指的是什么,当您说您不能下载该图像时,‘如果您希望它是一个公共网站’。如果你指的是许可问题,我想任何未经许可使用该图像的行为都会受到关注。
这里有一个解决方案,它将图像从链接下载到一个临时文件,然后您可以根据需要删除该文件(请注意,您仍然将图像存储为对象,更重要的是,您仍然将使用它)。
我正在使用png
格式的您的头像的图片。对于Spotify jpeg图像,请改用jpeg::readJPEG()
。
我使用ggpubr::background_image
是因为这比annotate_custom
更容易
library(ggplot2)
download.file('https://www.gravatar.com/avatar/e01b978970939af0a188df8c28136a67?s=328&d=identicon&r=PG&f=1',
destfile= 'tmp.png')
img <- png::readPNG('tmp.png')
# Plot with background image
ggplot(iris, aes(Species, Sepal.Length)) +
ggpubr::background_image(img)
由reprex package(v0.3.0)于2020-03-19创建
这篇关于我可以使用哪个R函数将图像链接用作ggplot2条形图中的背景图像?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文