我正在研究的主要问题是在我的情节的x轴上提供休息。 现在,我的x轴基于YYYY-WW格式的一年中的一周。
我尝试过使用ggplot2的不同方法。
似乎最有希望的是使用图书馆规模。
但是由于错误“错误:输入无效:date_trans仅适用于类Date的对象”,我现在陷入困境。
这是我的代码段:
library(ggplot2)
library(reshape2)
library(scales)
data4 <- read.csv("C:\\Users\\Shailesh\\Anaconda3\\Scripts\\4c.csv")
data4 <- melt(data4, id.vars = c("WEEK.NUMBER", "CURRENT.WEEK.DEATHS", "PREVIOUS.WEEKS.DEATHS"),
measure.vars = c("CURRENT.WEEK.DEATHS", "PREVIOUS.WEEKS.DEATHS"))
head(data4)
ggplot(data4, aes(fill=variable, y=value, x=factor(WEEK.NUMBER)), color="black") +
geom_bar( stat="identity") +
labs(x = "Week of Death", y="Number of Deaths") +
scale_fill_manual(name = '', guide = 'legend',labels = c('Death Reported Previous Week', 'Death Reported Current Week'),
values = c( "#00ffff","#009933")) +
#scale_x_date(breaks = date_breaks("1 weeks"), labels = date_format("%Y-%W"))+
theme(legend.position='bottom') +
theme( axis.text.x = element_text(angle = 90, hjust = 1, size =5))
以下是我到目前为止的情节(当我评论“scale_x_date(breaks = date_breaks(”1周“),labels = date_format(”%Y-%W“))”)时:
如何解决此错误或如何解析x轴?
任何都会有所帮助!谢谢!
答案 0 :(得分:1)
只需在 WEEK.NUMBER 中创建一个Date
类型字段,然后将其传递到aes()
来电的 x 。此外,您应该在{{id> id.vars 的{{{{em> id.vars 中省略冗余变量 CURRENT.WEEK.DEATHS 和 PREVIOUS.WEEKS.DEATHS 。 1}}。
melt
或者,使用data4 <- melt(data4, id.vars = c("WEEK.NUMBER"),
measure.vars = c("CURRENT.WEEK.DEATHS", "PREVIOUS.WEEKS.DEATHS"))
data4$week_date <- as.Date(paste(data4$WEEK.NUMBER, 1, sep="-"), format="%Y-%W-%w")
:
transform
下面演示随机数据,播种的重复性, data4 正试图复制您的融化数据,涵盖2016年和2017年的最后几周。
data4 <- transform(melt(data4, id.vars=c("WEEK.NUMBER"),
measure.vars=c("CURRENT.WEEK.DEATHS", "PREVIOUS.WEEKS.DEATHS")),
week_date = as.Date(paste(WEEK.NUMBER,1,sep="-"), format="%Y-%W-%w"))