本文介绍了用ggplot在背景图上绘制数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 我试图在背景图片上绘制一些数据。问题在于两个图层最终都使用相同的比例。这是不幸的问题。 一个例子。 我想绘制一些数据在这。 所以 ggplot(image,aes(row,-column,fill = fill) ))+ geom_tile()+ scale_fill_identity()+ geom_point(data = df2,aes(x = x,y = -y)) 但它最终会像表示它不能完成,但我希望有一个解决方法或我忽略的东西。 解决方案试试这个(或者annotation_raster) library(ggplot2) library(jpeg) library(grid) $ b img< - readJPEG(image.jpg) df y = sample(1:64,1000,replace = T)) ggplot(df,aes(x,y))+ annotation_custom(rasterGrob(img,width = unit(1,npc),height = unit(1,npc)), -Inf,Inf,-Inf,Inf)+ stat_bin2d()+ scale_x_continuous(expand = c(0,0))+ scale_y_continuous(expand = c(0, 0)) I'm trying to plot some data over a background image. The problem is that both layers end up using the same scale. This is unfortunately problematic.An example.I want to plot some data over this image.Right. So I plot it in ggplot like so.img <- readJPEG("image.jpg")image <- apply(img, 1:2, function(v) rgb(v[1], v[2], v[3]))image <- melt(image)ggplot(image, aes(row, -column, fill=fill)) + geom_tile() + scale_fill_identity()And it works well. So, let's add some data on top.df <- data.frame(x=sample(1:64, 1000, replace=T), y=sample(1:64, 1000, replace=T))ggplot(df, aes(x,y)) + stat_bin2d()Plotting the sample data, I get this.So I just want this data plot layered over the gradient image.ggplot(image, aes(row, -column, fill=fill)) + geom_tile() + scale_fill_identity() + geom_point(data=df2, aes(x=x, y=-y))But it ends up like thisTrying to specify a second fill scale throws an error. I see this says it can't be done, but I'm hoping that there is a workaround or something I'm overlooking. 解决方案 Try this, (or alternatively annotation_raster)library(ggplot2)library(jpeg)library(grid)img <- readJPEG("image.jpg")df <- data.frame(x=sample(1:64, 1000, replace=T), y=sample(1:64, 1000, replace=T))ggplot(df, aes(x,y)) + annotation_custom(rasterGrob(img, width=unit(1,"npc"), height=unit(1,"npc")), -Inf, Inf, -Inf, Inf) + stat_bin2d() + scale_x_continuous(expand=c(0,0)) + scale_y_continuous(expand=c(0,0)) 这篇关于用ggplot在背景图上绘制数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
09-05 15:23
查看更多