假设我有一个连续的x轴,并且想向每个刻度标记添加一个恒定值。例如
ggplot(data=warpbreaks,aes(x=breaks,y=replicate)) + geom_point()
Run Code Online (Sandbox Code Playgroud)
...将在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))
Run Code Online (Sandbox Code Playgroud)
这使刻度线偏移了适当的数量,但同时删除了最左边的刻度线。如果我x+40改为使用,则从左侧省略两个刻度线,仅留下一个。如果我这样做,x+10那么所有这些都将移去那个数量,并且所有这些都不会被省略。这是怎么回事?如何可靠地移动x值?
动机:当我拟合回归模型时,我通常将数值预报变量居中(除非它们实际上包含零),以避免在数据支持范围之外产生荒谬/误导的主要影响估计。但是,当我绘制数据和/或拟合值时,我想将它们返回到原始的非中心比例。
第一个选项是由@mnel 提出的:
ggplot(data=warpbreaks,aes(x=breaks,y=wool)) + geom_point() +
scale_x_continuous(labels=function(x) x+20)
Run Code Online (Sandbox Code Playgroud)
请注意,您可以“本地”更改数据(在 ggplot 调用内),所以这是另一个选项:
ggplot(data=warpbreaks,aes(x=breaks+20,y=wool)) + geom_point()
Run Code Online (Sandbox Code Playgroud)
在这种情况下,不需要对秤进行修改。
| 归档时间: |
|
| 查看次数: |
1975 次 |
| 最近记录: |