我希望在ggplot中展开区域图的彩色部分,以便在X轴的末端没有太多的灰色空间。当我使用scale_x_discrete(limits...)
时,图表的彩色部分会自动缩小,从而无法实现目的。这是一个例子
df1 <- data.frame(sex = factor(c("Female","Female","Male","Male")),
time = factor(c("Lunch","Dinner","Lunch","Dinner"), levels=c("Lunch","Dinner")),
total_bill = c(13.53, 16.81, 16.24, 17.42))
library(ggplot2)
ggplot(data=df1, aes(x=rep(c(1,2),2), y=total_bill, fill=sex)) +
geom_area() +
scale_x_discrete(labels=df1$time)
太多的灰色空间,没有足够的彩色图表
ggplot(data=df1, aes(x=rep(c(1,2),2), y=total_bill, fill=sex)) +
geom_area() +
scale_x_discrete(limits=c(0.8,2.2), labels=df1$time)
X轴刻度更接近图的边缘,但现在彩色部分缩小了 和灰色空间保持不变。
答案 0 :(得分:3)
在expand
scale_x_discrete
好像
library(ggplot2)
ggplot(data=df1, aes(x=rep(c(1,2),2), y=total_bill, fill=sex)) +
geom_area() +
scale_x_discrete(labels=df1$time, expand=c(0.2, 0))
答案 1 :(得分:0)
你也可以使用coord_cartesian,它对很多不同的图非常有用,它会改变缩放而不影响实际数据的绘制位置。
ggplot(data=df1, aes(x=rep(c(1,2),2), y=total_bill, fill=sex)) +
geom_area() +
scale_x_discrete(labels=df1$time) +
coord_cartesian(xlim=c(0.8,2.2))