当前位置 : 主页 > 手机开发 > 无线 >

如何在不弄乱刻度标签的情况下使用trans_new在ggplot2中按比例移动比例?

来源:互联网 收集:自由互联 发布时间:2021-06-10
假设我有一个连续的x轴,我想为每个tickmark标签添加一个常量值.例如 ggplot(data=warpbreaks,aes(x=breaks,y=replicate)) + geom_point() …将在20,40和60处有标记.如果我希望这些标记在不改变其余图的情况
假设我有一个连续的x轴,我想为每个tickmark标签添加一个常量值.例如

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()

在这种情况下,不需要修补秤.

网友评论