将自定义图像显示为 geom_point [英] Display custom image as geom_point

查看:21
本文介绍了将自定义图像显示为 geom_point的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以在 R ggplot 中将自定义图像(例如 png 格式)显示为 geom_point?

Is it possible to display custom image (say png format) as geom_point in R ggplot?

library(png)
pic1 <- readPNG("pic1.png")

png("Heatmap.png", units="px", width=3200, height=3200, res=300)
ggplot(data_frame, aes(medium, day, fill = Transactions))  +
   geom_tile(colour="white")  +
   facet_grid(dime3_year~dime3_month) + 
   scale_fill_gradient(high="blue",low="white") +
   theme_bw() + 
   geom_point(aes(dime3_channel, day, size=Conv,alpha=Conv,image=(annotation_raster(pic1,xmin=0,ymin=0,xmax=5,ymax=5)),color="firebrick")) +

给出错误:

不知道如何自动选择类型对象的比例原型/环境.默认为连续错误:美学必须要么是长度为 1,要么与数据问题:(annotation_raster(conv_pic, xmin = 0, ymin = 0, xmax =5, ymax = 5))

Don't know how to automatically pick scale for object of type proto/environment. Defaulting to continuous Error: Aesthetics must either be length one, or the same length as the dataProblems:(annotation_raster(conv_pic, xmin = 0, ymin = 0, xmax = 5, ymax = 5))

推荐答案

point geom 用于创建散点图,似乎并没有完全按照您的需要设计,即显示自定义图像.但是,在此处回答了类似的问题,这表明问题可以通过以下步骤解决:

The point geom is used to create scatterplots, and doesn't quite seem to be designed to do what you need, ie, display custom images. However, a similar question was answered here, which indicates that the problem can be solved in the following steps:

(1)读取你想要显示的自定义图片,

(1) Read the custom images you want to display,

(2) 使用rasterGrob() 函数在给定的位置、大小和方向渲染光栅对象,

(2) Render raster objects at the given location, size, and orientation using the rasterGrob() function,

(3) 使用qplot()

(4) 使用诸如 annotation_custom() 之类的 geom 作为静态注释,指定 user20650 提到的 x 和 y 限制的粗略调整.

(4) Use a geom such as annotation_custom() for use as static annotations specifying the crude adjustments for x and y limits as mentioned by user20650.

使用下面的代码,我可以在给定的 xmin、xmax、ymin 和 ymax 处获得两个自定义图像 img1.png 和 img2.png.

Using the code below, I could get two custom images img1.png and img2.png positioned at the given xmin, xmax, ymin, and ymax.

library(png)
library(ggplot2)
library(gridGraphics)
setwd("c:/MyFolder/")

img1 <- readPNG("img1.png")
img2 <- readPNG("img2.png")
g1 <- rasterGrob(img1, interpolate=FALSE)
g2 <- rasterGrob(img2, interpolate=FALSE)
qplot(1:10, 1:10, geom="blank") + 
  annotation_custom(g1, xmin=1, xmax=3, ymin=1, ymax=3) +
  annotation_custom(g2, xmin=7, xmax=9, ymin=7, ymax=9) +  
  geom_point()

这篇关于将自定义图像显示为 geom_point的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆