【问题标题】:How to scale background Image in ggplot2?如何在ggplot2中缩放背景图像?
【发布时间】:2020-07-04 01:44:06
【问题描述】:

我的屏幕尺寸为 15.6 英寸。我已经拍摄了我的屏幕截图。我正在做一个项目,我必须绘制鼠标点击点的散点图。所以我有鼠标点击的坐标.我想在此图像上绘制散点图,该散点图是屏幕上单击鼠标的点。因此,当我使用 ggplot2 绘制图形并添加背景图像时。它会缩放图像并且散点是看到的位置与实际点击鼠标的位置不同。

p4 <- ggplot(subset(ClickData,type1=="singleClick"), aes(ms,x=x,y=-y)) + background_image(b)+
  geom_point(alpha=1,color='red') +
  # geom_smooth(alpha=.2, size=1) +
  ggtitle("Single click")+
  theme(legend.position="none")  
p4

我该怎么做!! 谢谢解答

EDIT1:

x,y,type
1341,278,singleLeftClick
1194,320,singleLeftClick
1233,555,singleLeftClick
1111,586,singleLeftClick
1160,587,singleLeftClick

它的纵横比在变化a,它显示的点不是实际发生点击的地方!!

【问题讨论】:

  • 一个很好的解释是here
  • 你明白我的问题了吗?
  • 请添加一些数据以使该问题可重现。您可以在问题中将屏幕截图添加为图像,并使用 dput 提供一些鼠标坐标
  • 是的,当然@dww 看看我的编辑!!

标签: r ggplot2


【解决方案1】:

您应该设置绘图的坐标系以匹配图像的尺寸

ggplot(ClickData, aes(x, y  = dim(b)[1] - y)) + 
        background_image(b) +
        geom_point(color='red', size=5) +
        coord_cartesian(xlim = c(0, dim(b)[2]), ylim = c(0, dim(b)[1]), 
                        expand = FALSE)

【讨论】:

  • 非常感谢你能回答我之前的question