R 使用带有对数y轴的geom_山脊线

R 使用带有对数y轴的geom_山脊线,r,ggplot2,ggridges,R,Ggplot2,Ggridges,我正在尝试将timeseries数据可视化,并认为ggridges包对此很有用。但是,我的一些数据需要绘制在对数刻度上。有办法做到这一点吗 我尝试使用y=0.001而不是0,因为y=0失败,但是高度不正确。这可以在绘制点时看到 谢谢 示例如下: data <- data.frame(x = 1:5, y = rep(0.001, 5), height = c(0.001, 0.1, 3, 300, 4)) ggplot(data) + geom_ridgeline(aes(x, y,

我正在尝试将timeseries数据可视化,并认为ggridges包对此很有用。但是,我的一些数据需要绘制在对数刻度上。有办法做到这一点吗

我尝试使用y=0.001而不是0,因为y=0失败,但是高度不正确。这可以在绘制点时看到

谢谢

示例如下:

data <- data.frame(x = 1:5, y = rep(0.001, 5), height = c(0.001, 0.1, 3, 300, 4))
ggplot(data) +
  geom_ridgeline(aes(x, y, height = height),fill = "lightblue") +
  scale_y_log10() +
geom_point(aes(x=x, y=height))

数据希望这将为您解决问题提供线索

使用
ggridges
()中的一个例子,我添加了
+1
,以避免在获取
log10

library(ggridges)
d <- data.frame(
  x = rep(1:5, 3),
  y = c(rep(0, 5), rep(1, 5), rep(2, 5)),
  height = c(0, 1, 3, 4, 0, 1, 2, 3, 5, 4, 0, 5, 4, 4, 1)
)

ggplot(d, aes(x, (y + 1), height = height, group = y)) + 
  geom_ridgeline(fill = "lightblue")+
  scale_y_log10() +
  annotation_logticks(sides = "l")
库(ggridges)

d我的数据集有这么小的值,获取日志将产生缩放问题。我能想到的最接近的方法是使用
log1p()
来转换值,也许还可以进行一些缩放变换。