我有 2 个数据框,用来制作 2 个散点图。我使用一列来设置标记的 Alpha 和大小,并且我需要第二个图中的缩放比例与第一个图中相同。问题是,虽然图 A 中的值范围从 0 到 1,但在图 B 中,它们的范围从 0 到 0.5(B 中的刻度也应该从 0 到 1)...
快速示例:
x=seq(from=1, to=10, by=1)
y=seq(from=1, to=10, by=1)
markerA=sample(0:100,10, replace=T)/100
markerB=sample(0:50,10, replace=T)/100
dfA=data.frame(x,y,markerA)
dfB=data.frame(x,y,markerB)
a<- ggplot(dfA,aes(x=x, y=y))
a <- a + geom_point(aes(alpha=dfA$markerA, size=dfA$markerA))
a
b<- ggplot(dfB,aes(x=x, y=y))
b <- b + geom_point(aes(alpha=dfB$markerB, size=dfB$markerB))
b
Run Code Online (Sandbox Code Playgroud)
我认为应该有一个简单的方法来做到这一点,但我似乎找不到它......
只需将scale_size和添加scale_alpha到您的绘图中即可。
与ggplot2,记住不要用$variable在aes
这是一个例子:
a = ggplot(dfA,aes(x=x, y=y)) +
geom_point(aes(alpha=markerA, size=markerA)) +
scale_size(limits = c(0,1)) +
scale_alpha(limits = c(0,1))
b = ggplot(dfB,aes(x=x, y=y)) +
geom_point(aes(alpha=markerB, size=markerB)) +
scale_size(limits = c(0,1)) +
scale_alpha(limits = c(0,1))
grid.arrange(a,b)
Run Code Online (Sandbox Code Playgroud)