如何在ggplot中使用scales::label_percent实现绝对百分比比例?

vq8itlhq  于 2023-01-10  发布在  其他
关注(0)|答案(1)|浏览(73)

ggplot中的y轴比例如下所示

library(scales)

demo_continuous(c(-0.5, 0, 1))

我想有一个绝对百分比规模。我想出了如何做一个绝对规模使用

demo_continuous(c(-0.5, 0, 1), labels = base::abs)

我知道怎么用

demo_continuous(c(-0.5, 0, 1), labels = scales::label_percent(accuracy = 0.1))

多亏了this,我还知道了如何使用

demo_continuous(c(-0.5, 0, 1), labels = function(x) scales::percent(base::abs(x)))

然而,scales::percentscales::label_percent取代了,我不知道如何使用scales::label_percent而不是scales::percent来做同样的事情。

**问题:**如何使用scales::label_percent复制function(x) scales::percent(base::abs(x))

zed5wv10

zed5wv101#

label_percent()函数创建一个函数本身,然后对这些数字调用该函数。

library(scales)
label_percent()
#> function (x) 
#> {
#>     number(x, accuracy = accuracy, scale = scale, prefix = prefix, 
#>         suffix = suffix, big.mark = big.mark, decimal.mark = decimal.mark, 
#>         style_positive = style_positive, style_negative = style_negative, 
#>         scale_cut = scale_cut, trim = trim, ...)
#> }
#> <bytecode: 0x7f86274ba7e0>
#> <environment: 0x7f86274b99a8>

因此,您可以在标签函数中调用该函数,如下所示:

demo_continuous(c(-0.5, 0, 1), labels = function(x)label_percent()(abs(x)))
#> scale_x_continuous(labels = function(x) label_percent()(abs(x)))

reprex package(v2.0.1)于2023年1月9日创建

相关问题