我有以下问题:我想在箱线图上可视化离散变量和连续变量,其中后者具有一些极高的值。这使得箱线图毫无意义(图表的点甚至“主体”都太小了),这就是为什么我想以 log10 的比例显示它。我知道我可以从可视化中省略极端值,但我不打算这样做。
让我们看一个带有钻石数据的简单示例:
m <- ggplot(diamonds, aes(y = price, x = color))
这里的问题并不严重,但我希望你能想象为什么我希望看到 log10 比例的值。让我们尝试一下:
m + geom_boxplot() + coord_trans(y = "log10")
如您所见,y 轴是 log10 缩放的,看起来不错,但 x 轴有问题,这使得绘图非常奇怪。
问题不会发生scale_log
,但这不是我的选择,因为我不能以这种方式使用自定义格式化程序。例如:
m + geom_boxplot() + scale_y_log10()
我的问题:有谁知道在 y 轴上绘制带有 log10 比例的箱线图的解决方案,哪些标签可以用这个线程formatter
中的函数自由格式化?
根据答案和评论编辑问题以帮助回答者:
我真正追求的是:一个没有科学标签的 log10 转换轴 (y)。我想将其标记为美元(formatter=dollar)
或任何自定义格式。
如果我尝试@hadley 的建议,我会收到以下警告:
> m + geom_boxplot() + scale_y_log10(formatter=dollar)
Warning messages:
1: In max(x) : no non-missing arguments to max; returning -Inf
2: In max(x) : no non-missing arguments to max; returning -Inf
3: In max(x) : no non-missing arguments to max; returning -Inf
使用不变的 y 轴标签: