如何从ggplot中原点的第一个轴刻度开始
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从ggplot中原点的第一个轴刻度开始相关的知识,希望对你有一定的参考价值。
我想始终从原点的第一个轴刻度开始,例如在此图像中:
玩xlim
,expand_limits
或scale_x_continuous
并不真正起作用 - 第一轴刻度和原点之间总是有一点间距。应该有一个简单的方法来做到这一点。提前谢谢了。
答案
不幸的是,ggplot2
被设置为扩展轴并因此填充轴刻度,并且没有简单的功能来强制它们在原点处齐平。我发现在原点获得轴刻度的最佳方法是使用coord_cartesian()
关闭轴扩展并手动指定限制
require(ggplot2)
ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
theme_classic() +
coord_cartesian(expand = FALSE, #turn off axis expansion (padding)
xlim = c(1, 6), ylim = c(10, 35)) #manually set limits
我更喜欢在coord_cartesian()
而不是在scale_y_...()
和scale_x_...()
中定义限制,因为coord_cartesian()
会查看视图,但不会改变基础数据。 scale...()
函数删除超出限制的数据,如果你裁掉异常值,可能会弄乱拟合线(stat_smooth()
)或汇总统计数据。
另一答案
对我有用的解决方案是将选项expand=c(0,0)
与limits选项一起设置,例如:
scale_y_continuous(expand = c(0, 0), limits = c(10,NA))
然后Y轴从原点开始,第一个标记为10
。
以上是关于如何从ggplot中原点的第一个轴刻度开始的主要内容,如果未能解决你的问题,请参考以下文章