我有一个反复出现的问题让我发疯......我正在使用'''geom_area'''以我的x轴作为日期来绘制一个ggplot2。我试图将日期分隔成彼此相等的距离,但我看不到如何......我正在附加我的虚拟数据。第一个图很好地绘制了我的数据,但如果日期彼此接近,我的日期会聚集在一起。我想让它们像“选项 2”一样等距,但“date_sr”不会绘制我的百分比信息。
我非常感谢您能提供的任何帮助。
require(ggplot2)
library(reshape2)
library(RColorBrewer)
sex <- c('F','F','F',
'M','M','M')
date <- c("26/11/2018","08/02/2020","08/09/2020",
"26/11/2018","08/02/2020","08/09/2020")
percentage <- c(40, 30, 20, 60, 70, 80)
df <- data.frame(sex, date, percentage)
print(df)
#option 1
df$date<- as.Date(df$date,format="%d/%m/%Y")
ourdates<-(unique(df$date))
df
area1 <- ggplot(df, aes(date, percentage,fill=sex)) +
geom_area()+
scale_y_continuous(breaks = seq(0,100,10))+
scale_x_date(breaks = ourdates, date_labels = "%d %b %Y")+
scale_fill_brewer(labels=c("Female","Male"),palette ="Paired")
plot(area1)
#option 2
df$date<- as.Date(df$date,format="%d/%m/%Y")
mydate<-format(df$date, "%d %b %Y")
date_sr<-factor(mydate, levels = rev(unique(mydate)),ordered = TRUE)
#if we do not re-define date_sr as date it won't plot the graph (but then it won't plot the date in the correct format)
#date_sr<-as.Date(df$date, format="%d/%b/%Y")
area2<-ggplot(df,aes(fill=sex,y=percentage,x=date_sr))+
geom_area()+
scale_y_continuous(breaks = seq(0,100,10))+
scale_fill_brewer(labels=c("Female","Male"),palette ="Paired")
plot(area2)
geom_area 绘制女性和男性之间的性别比例。通知 2020 年 2 月 8 日更接近 2020 年 9 月 8 日。我希望将 3 个日期彼此等距绘制,并将日期格式设置为“%d %b %Y”。