[英]R and ggplot- Changing x axis to Date removes position dodge
我一直在使用ggplot創建繪圖,我總是喜歡水平偏移我的數據點,因此誤差條不會重疊。 我發現當我使用日期數據作為我的x軸時,我失去了偏移數據點的能力。
DF=data.frame(Date=c("2006-09-01", "2007-09-01", "2008-09-01" ,"2009-09-01", "2010-01-01" ,"2011-01-01"),Count=c(1,2,3,4,5,6,2,4,6,8,10,12),Type=c('A','A','A','A','A','A','B','B','B','B','B','B'))
如果我使用像這樣的ggplot繪制上面的數據框,則這些點是偏移的
dodge=position_dodge(.5)
ggplot(data=DF,aes(x=Date,y=Count,group=Type))+geom_point(position=dodge)
但是,如果我將日期數據指定為實際日期
DF$Date=as.Date(DF$Date)
ggplot(data=DF,aes(x=Date,y=Count,group=Type))+geom_point(position=dodge)
這些點不再被抵消,即使我指定它們
我過去通過將日期數據僅限於“年”並將其視為數字來避免此問題。 但是現在我需要包含月份信息(我包括我的約會日期,因為“as.Date如果我不包含它會有點時髦)。
所以任何人都可以告訴我,如果有一種方法我可以使用ggplot繪制時間序列,這將允許我偏移我的數據點和誤差條。
實際上這些分數略有躲過。
您需要記住,一年之間的間隔是365天。 position_dodge(0.5)
將點移動(半天)/ 2。 因此,該位置移動一年間隔0.5 / 2/365。
如果你選擇`position_dodge(0.5 * 365),那么你將得到預期的情節:
DF <- data.frame(
expand.grid(Date=c("2006-09-01", "2007-09-01", "2008-09-01" ,"2009-09-01"),
Type = c("A", "B")),
Count = 1:4)
DF$Date2 <- as.Date(DF$Date)
ggplot(data=DF,aes(x=Date2,y=Count,group=Type))+ geom_point(position = position_dodge(365*0.5))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.