我有一个数据框列表。数据帧具有以下列:Dist
,GPSSpeed_kmh
。我想在绘图的特定点上绘制左弯符号的png。我将以下代码用于数据帧df
,结果显示如下:
ggplot(df, aes(Dist, GPSSpeed_kmh)) +
geom_point(size = 1) +
geom_smooth(se = TRUE, span = 0.7) +
scale_x_continuous(limits = c(-20,11),breaks = seq(-30, 10, by = 10), labels = abs(breaks)) +
geom_vline(xintercept = -16) +
annotation_custom(leftbend, xmin = -18, xmax = -14, ymin = 30, ymax = 40)
但是当我使用另一个数据框时,因为参数ymin
,ymax
依赖于输入数据框,所以要在geom_vline()
上方绘制左弯图标,所以在另一点绘制了左弯图标。 ({xmin
,xmax
是固定的)。
有没有办法在输入数据框中调整参数ymin
,ymax
?我希望所有数据框都具有通用的输出结果。
提前谢谢!
该图标甚至没有绘制,因为该数据框没有其他GPSSpeed_kmh
从30(ymin)到40(ymax)的值!
答案 0 :(得分:1)
我的评论是这样的:
library(ggplot2)
library(png) ## for loading the png
library(grid) ## to render the image
y=c(1,2,3)
x=c(0,0,0)
d=data.frame(x=x, y=y) ## make sample dataframe
img <- readPNG(system.file("img", "Rlogo.png", package="png"))
g <- rasterGrob(img, interpolate=TRUE)
mi <- 1; ma <- 2.2 ## defining limits for y-axis
ggplot(d, aes(x, y)) + geom_point() +
ylim(mi, ma)+ ## set limits for y-axis
annotation_custom(g, xmin=.020, xmax=.030, ymin=.5*ma)
通过将notation_custom的ymin与y轴最大值的一半(或任意分数)相关联,可以确保图像始终位于同一位置。
我希望这会有所帮助。