我有一个有点“奇怪”的二维分布(对于一些统一的值来说不是正常的,但它看起来像这样......这只是一个最小的可重现示例),并且想要对这些值进行对数转换并绘制它们。
library("ggplot2")
library("scales")
df <- data.frame(x = c(rep(0,200),rnorm(800, 4.8)), y = c(rnorm(800, 3.2),rep(0,200)))
如果没有对数转换,散点图(包括我需要的地毯图)工作(非常)好,除了 x 轴上稍微窄一点的地毯图:
p <- ggplot(df, aes(x, y)) + geom_point() + geom_rug(alpha = I(0.5)) + theme_minimal()
p
但是,当使用 log10 变换绘制相同的图时,边缘处的点(分别在 x = 0 和 y = 0 处)绘制在地毯图之外或仅在轴上(使用其他数据,并且只有一半一个点可见)。
p + scale_x_log10() + scale_y_log10()
我怎样才能“重新调整”轴,使所有点都完全包含在网格中并且地毯图不受影响,就像第一个例子一样?