我正在尝试使用 ggplot2 创建具有对数正态 y 刻度的性能图表。不幸的是,对于基本绘图功能,我无法生成漂亮的刻度。
这是我的例子:
library(ggplot2)
library(scales)
# fix RNG
set.seed(seed = 1)
# simulate returns
y=rnorm(999, 0.02, 0.2)
# M$Y are the cummulative returns (like an index)
M = data.frame(X = 1:1000, Y=100)
for (i in 2:1000)
M[i, "Y"] = M[i-1, "Y"] * (1 + y[i-1])
ggplot(M, aes(x = X, y = Y)) + geom_line() + scale_y_continuous(trans = log_trans())
产生丑陋的滴答声:
我也试过:
ggplot(M, aes(x = X, y = Y)) + geom_line() +
scale_y_continuous(trans = log_trans(), breaks = pretty_breaks())
如何获得与默认绘图功能相同的中断/刻度:
plot(M, type = "l", log = "y")
结果应该看起来像这样,但不是硬输入中断而是动态的。我尝试了类似axisTicks()
但没有成功的功能:
ggplot(M, aes(x = X,y = Y)) + geom_line() +
scale_y_continuous(trans = log_trans(), breaks = c(1, 10, 100, 10000))
谢谢!
编辑:插入图片