我的data.frame看起来像:
df <- data.frame(date=as.Date(c("2017-12-01", "2018-01-01", "2018-02-01")), value=c(1, 2, 3))
用ggplot绘制一条线
library(ggplot2)
ggplot(data=df, aes(x=date, y=value)) +
geom_line() +
scale_x_date(date_breaks = "day", limits = c(min(df$date), max(df$date))) +
theme(axis.text.x=element_text(angle=90, vjust = 0.5))
给出:
我希望通过在ggplot命令中设置限制(limits = c(min(df$date), max(df$date))
),2017年11月和2018年的额外日期将会消失,但它们不会消失。
我是否可以将剧情限制为&#34; 2017-12-01&#34; &#34; 2018-02-01&#34;使用scale_x_date
?或者我是否必须松开日期功能以限制我的data.frame中日期的两端的情节?
答案 0 :(得分:2)
这是正常的,因为您查找的参数不是limits
而是expand
,因为这是在极限左右添加一点额外空间的参数。您根本不必指定限制,因为默认情况下使用最小值和最大值。
因此,此代码为您提供了您所追求的情节:
ggplot(data=df, aes(x=date, y=value)) +
geom_line() +
scale_x_date(date_breaks = "day", expand = c(0,0)) +
theme(axis.text.x=element_text(angle=90, vjust = 0.5))
从帮助页面:
expand:长度为2的数字向量,给出乘法和 加性膨胀常数。这些常量确保数据 离轴有一段距离。默认值为c(0.05,0) 对于连续变量,对于离散变量,c(0,0.6)。
这给出了