我无法让ggplot()
在y轴上显示所有连续数据,同时又在x轴上保持分类变量的正确顺序。这是我当前的代码:
s3 <- ggplot(summary3, aes(x = Date, y = True.Leaves, shape = Location)) +
geom_errorbar(aes(ymin = True.Leaves - se, ymax = True.Leaves + se), width = .1) +
facet_wrap(~ Vegetation) +
geom_point(size = 5) +
labs(x = "Date", y = "Seedling Counts") +
scale_x_discrete(limits = c("11/30/15", "10/22/16", "11/19/16", "12/14/16", "1/18/17",
"2/16/17", "3/19/17", "4/17/17", "5/17/17", "6/17/17",
"7/12/17", "8/6/17", "9/21/17", "10/12/17", "11/20/17",
"12/14/17") )
但是,这会导致出现以下错误消息,我知道这是发生的,因为y轴需要扩展以包括延伸到0轴以下的误差线。
1: Removed 20 rows containing missing values (geom_errorbar).
2: Removed 20 rows containing missing values (geom_point).
我的问题是我不能在不弄乱x轴的情况下更改y轴的比例。如果我添加+ scale_y_continuous(limits = c(-2,15))
或+ coord_cartesian(ylim = -2:15)
,错误消息就会消失,但是我的x轴上的日期顺序会更改并按数字进行组织(从1/18/17而不是11开始) / 30/15),即使我已明确将此变量设置为一个因子,而不是整数。是否发生这种情况取决于ggplot函数中scale_y_continuous()
或scale_x_discrete()
参数是第一位的顺序-哪个先占主导地位。
我也尝试将x轴设置为日期而不是类别变量,但是第一个日期(11/30/15)比其他日期提前一年,我希望所有日期都间隔开同样,不基于是否已经过去了更多时间。
非常感谢您的帮助!