如何让ggplot的scale_x_continuous显示完整0-12区间?
ggplot绘制函数时x轴区间未按指定设置
我尝试使用ggplot绘制两个函数,代码如下:
ggplot() + scale_x_continuous(breaks=seq(0, 12, by=1)) + xlab("Price") + ylab("Quantity")+ geom_function(fun = function(x) 1200-100*x) + geom_function(fun = function(x) 100*x)
但绘图结果未遵循scale_x_continuous指定的0-12区间,请问问题出在哪里?
原因及解决方法
- 你只设置了x轴的刻度断点(
breaks参数),但没有限定x轴的显示范围。breaks仅控制哪些刻度值会被显示出来,并不会自动约束轴的整体范围。 - 要让x轴固定在0-12区间,只需在
scale_x_continuous中添加limits = c(0, 12)参数,修正后的代码如下:
ggplot() + scale_x_continuous(breaks=seq(0, 12, by=1), limits = c(0, 12)) + xlab("Price") + ylab("Quantity")+ geom_function(fun = function(x) 1200-100*x) + geom_function(fun = function(x) 100*x)
- 也可以单独使用
xlim(0, 12)来指定范围,代码如下:
ggplot() + scale_x_continuous(breaks=seq(0, 12, by=1)) + xlim(0, 12) + xlab("Price") + ylab("Quantity")+ geom_function(fun = function(x) 1200-100*x) + geom_function(fun = function(x) 100*x)
内容的提问来源于stack exchange,提问作者Jonas
相关产品推荐
相关产品推荐

