在研究this answer时,我尝试从ggimage包中通过geom_image()
绘制图像条,但无法使其正常工作。 geom_image()
修改了图片宽高比,我不知道如何阻止它(或者甚至是否可能)。对于size
测量的单位,我也不清楚。根据代码的行为方式,可能它在npc
坐标中从0到1运行,无论ggplot2坐标系如何?
以下是我使用的代码:
require(ggimage)
df_img <- data.frame(phase = c("Interphase", "Prophase", "Metaphase", "Anaphase", "Telophase"),
image = c("http://www.microbehunter.com/wp/wp-content/uploads/2009/lily_interphase.jpg",
"http://www.microbehunter.com/wp/wp-content/uploads/2009/lily_prophase.jpg",
"http://www.microbehunter.com/wp/wp-content/uploads/2009/lily_metaphase2.jpg",
"http://www.microbehunter.com/wp/wp-content/uploads/2009/lily_anaphase2.jpg",
"http://www.microbehunter.com/wp/wp-content/uploads/2009/lily_telophase.jpg"))
df_img$phase <- factor(df_img$phase, levels=df_img$phase)
ggplot(df_img, aes(x = phase, y = 0, image = image)) + geom_image(size = 0.18)
这是结果图像:
这就是图像的样子:
注意:这是一个特别关于ggimage行为的问题。我知道如何使用其他方法生成正确的图像,例如使用牛皮画中的draw_image()
。
答案 0 :(得分:4)
ggplot(df_img, aes(x = phase, y = 0.25, image = image)) +
geom_image(size = 0.5, by="height")+
scale_size_identity()
将产生
如果指定了by
,则将数据映射并解释为数据空间中的npc,作为宽度或高度,以及为当前设备维护的纵横比(不是在调整大小后)。如果尺寸为Inf,则图片会拉伸以填充整个面板。
答案 1 :(得分:0)