我不希望轴线在原点相交,我也希望轴线在第一个刻度处开始并在最后一个刻度处结束。怎么做?
答案 0 :(得分:4)
ggthemes
软件包已实现了tufte的范围框架。您可以geom_rangeframe
与theme_tufte
一起使用以获取范围框架。然后,您可以另外添加scalelimits以使轴在第一个刻度处开始并在最后一个刻度处结束。
require(ggthemes)
qplot(mpg, wt, data=mtcars) + geom_rangeframe() + theme_tufte()
qplot(mpg, wt, data=mtcars) +
geom_rangeframe(data=data.frame(x=c(10, 35), y=c(0, 6)), aes(x, y)) +
theme_tufte() +
scale_x_continuous(limits = c(10, 35)) +
scale_y_continuous(limits = c(0, 6))
如果您不喜欢该主题,可以查看theme_tufte
以获取来源并相应地更改您自己的主题。
qplot(mpg, wt, data=mtcars) +
geom_rangeframe(data=data.frame(x=c(10, 35), y=c(0, 6)), aes(x, y)) +
theme_bw(base_size = 16) +
theme(legend.background = element_blank(), legend.key = element_blank(),
panel.background = element_blank(), panel.border = element_blank(),
strip.background = element_blank(), plot.background = element_blank(),
axis.line = element_blank(), panel.grid = element_blank()) +
scale_x_continuous(limits = c(10, 35)) +
scale_y_continuous(limits = c(0, 6))
或者,您也可以完全放弃轴并依赖网格线。
qplot(mpg, wt, data=mtcars) +
scale_x_continuous(limits = c(10, 35)) +
scale_y_continuous(limits = c(0, 6)) +
theme_bw() +
theme(panel.border=element_rect(color='white'),
axis.ticks = element_line(color='gray90'))