我发现ggplot2
使用scale_y_log10
. 我正在尝试从任意数据自动生成绘图,并且我正在寻找一种方法来增加刻度线的数量而不明确指定它们(因为我不提前知道数据将是什么)。例如,这里有一个函数可以创建一个带有 log-y 比例的简单散点图:
example_plot <- function(x) {
p <- ggplot(d, aes(x=MW, y=rel.Ki)) +
geom_point() +
scale_y_log10()
p
}
这通常会很好,但使用以下数据
d <- structure(list(MW = c(89.09, 174.2, 147.13, 75.07, 131.17, 131.17, 146.19, 149.21, 165.19, 115.13, 181.19, 117.15), rel.Ki = c(2.91438577473767, 1, 1.07761254731238, 1.0475715900998, 0.960123906592881, 0.480428471483881, 1.50210548081627, 0.318457530434953, 0.458477212731015, 1.92246139937586, 0.604121577795352, 2.4111345825694)), .Names = c("MW", "rel.Ki"), class = "data.frame", row.names = c(1L, 6L, 11L, 16L, 21L, 26L, 31L, 36L, 41L, 47L, 54L, 59L))
它产生
print(example_plot(d))
y 轴上的单个刻度线不是很有帮助。除了重写自动刻度位置拾取功能之外,有什么办法可以防止这种情况发生吗?