gpt4 book ai didi

r - 如何使用 trans_new 在 ggplot2 中按常数移动比例而不会弄乱刻度标签?

转载 作者:行者123 更新时间:2023-12-04 20:08:58 24 4
gpt4 key购买 nike

假设我有一个连续的 x 轴,我想为每个刻度线标签添加一个常量值。例如

ggplot(data=warpbreaks,aes(x=breaks,y=replicate)) + geom_point()

...将在 20、40 和 60 处有刻度线。如果我希望这些刻度线改为读取 40、60 和 80 而不改变图的其余部分怎么办?我试过这个:
ggplot(data=warpbreaks,aes(x=breaks,y=replicate)) + geom_point() + 
scale_x_continuous(trans=trans_new("shift",function(x) x+20,identity))

这将刻度线移动了适当的量,但也删除了最左边的刻度线。如果我使用 x+40取而代之的是从左侧省略两个刻度线,只留下一个。如果我这样做 x+10然后所有这些都按那个数量移动,并且没有一个被省略。这是怎么回事?如何可靠地移动 x 值?

动机:当我拟合回归模型时,我通常将数字预测变量(除非它们实际上包含零)居中,以避免数据支持范围之外的荒谬/误导性主效应估计。但是,当我绘制数据和/或拟合值时,我想将它们返回到原始的、非居中的比例。

最佳答案

第一个选项是@mnel 提出的:

ggplot(data=warpbreaks,aes(x=breaks,y=wool)) + geom_point() + 
scale_x_continuous(labels=function(x) x+20)

请注意,您可以“本地”更改数据(在 ggplot 调用中),因此这是另一个选项:
ggplot(data=warpbreaks,aes(x=breaks+20,y=wool)) + geom_point()

在这种情况下,不需要修改秤。

关于r - 如何使用 trans_new 在 ggplot2 中按常数移动比例而不会弄乱刻度标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21036372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com