我在ggplot的线图上绘制日期时遇到了一些问题。当我从.csv文件中读取数据时,日期看起来很好(例如2016年10月26日),但它们是因素。我在这里使用dd-mm-yyyy格式。然而,当我使用as.Date()转换为日期时,所有观察中的年份变为2020并且被反转(例如2020/10/26)。因此,绘制日期在x轴上完全无用,因为年份仅为20。
我在as.Date()包装器中尝试了“%d /%m /%y”的各种组合,但无济于事。
以下是在将日期变量转换为日期对象之前使用的数据示例。
date <- as.factor(c("26/10/2016","15/06/2016","19/06/2016","22/06/2016","23/06/2016"))
clinton <- c(45.8,40.0,41.0,41.7,42.0)
trump <- c(40.4,35.3,36.0,36.8,37.0)
johnson <- c(5.8,5.3,6.5,6.5,7.0)
stein <- c(1.8,3.3,4.0,4.2,4.3)
df <- data.frame(date,clinton,trump,johnson,stein)
head(df)
我将日期转换为课程日期后的情节代码:
df$date <- as.Date(df$date,"%d/%m/%y")
df_long <- melt(df,id="date") # convert to long format
ggplot(data=df_long,aes(x=date,y=value,colour=variable)) +
geom_line() +
theme_minimal() +
scale_colour_manual(values = c("blue","red","yellow","green")) +
scale_y_continuous(breaks=seq(0,45,5)) +
scale_x_date(labels = date_format("%d/%m/%Y")) +
ylab("")
奇怪的是,在这个示例数据中,年份被绘制为2020而不是20,就像我的原始数据一样?如果不回到LibreOffice将所有日期修改为dd-mm-yy,是否有解决此问题的方法?提前谢谢。