使用ggplot在连续x轴上引入间隙

时间:2012-10-12 13:35:30

标签: r ggplot2 missing-data stacked-area-chart timeserieschart

这有点像我以前的post上的内置版本,创建了一个缺少值的堆积区域/条形图(我可以在那里找到所有运行的脚本)。然而,在这篇文章中,我问是否有可能在连续的x轴上留下间隙?我有一个月的时间系列(一个月一个月),但一个月的一个样本丢失了,我想把这个月显示为情节的完全差距。几乎就像绘制1月至8月(9月缺失)的图表和10月至12月的图表,并将这些图表与9月的差距合并。

我尝试过的唯一事情是将缺失的月份视为零或NA,在9月的面积图中创建一个下降或排除它,但x轴分别为1-11(见图中的dropbox文件夹)。

我正在处理的数据集可以在我的dropbox folder中找到,它名为r_class.txt,您还可以看到两个不同的图(Rplots1和2)。

真的很感激任何想法!

1 个答案:

答案 0 :(得分:0)

将该系列绘制为两个独立的数据框:

#Load libraries
require(ggplot2)
require(reshape)

#Code copied from your linked post:
wa=read.table('wa_class.txt', sep="", header=F, na.string="0")
names(wa)=c("Class","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
wam=melt(wa)
wam$variablen=as.numeric(wam$variable)

#For readability, split the melted data frame into two separate data frames
wam1 <- wam[wam$variablen %in% 1:6,]
wam2 <- wam[wam$variablen %in% 8:12, ]

ggplot() +
  geom_area(data=wam1, aes(x=variablen, y=value, fill=Class)) +
  geom_area(data=wam2, aes(x=variablen, y=value, fill=Class))
  #and add lineranges, etc., accordingly