我在尝试使用stat_function
R's时遇到了严重的问题ggplot2
。我从这个简单的例子开始:
ggplot(data.frame(x = c(1, 1e4)), aes(x)) + stat_function(fun = function(x) x)
按预期工作。不幸的是,当我为 x 和 y 轴添加对数刻度时:
ggplot(data.frame(x = 1:1e4), aes(x)) +
scale_x_log10() +
scale_y_log10() +
stat_function(fun = function(x) x)
我得到以下结果,这是对身份函数的严重违反。
我缺少一些非常基本的东西吗?那么在对数刻度上绘制函数的正确且最简单的方法是什么?
编辑:
受答案的启发,我继续尝试了尺度和aesthetics
参数。我更加困惑地发现我使用下面的代码得到了我所期望的:
ggplot(data.frame(x = 1:1e4, y = 1:1e4), aes(x, y)) +
scale_x_log10() +
scale_y_log10() +
stat_function(fun = function(x) x)
具有明显未使用的 y 值向量(stat_function
即未使用)。轴转换是否取决于数据的可用性?