2015-06-17 71 views
2

我想在ggplot2 (barplot)中制作一个图表。我的数据集中有数天之间的数据点。我只想绘制变量的日期并省略空的日期。从x轴ggplot2隐藏缺失日期

我一直在寻找一小时试图找到答案。我发现这里的一些回复,表明该修复是这样的:

scale_x_date(format = '%d%b', major='days') 

然而,scale_x_date内这些争论似乎并没有工作了。有没有人有一个快速和简单的解决方案?

+2

如果您还将调用发布到正在制作的'ggplot2()',以便我们可以重现它,这将会有所帮助。 –

+1

一小部分数据将有助于确保我们正在回答正确的问题。 – tegancp

+1

请参阅[如何制作一个很好的重现示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – MrFlick

回答

1

如果我没有提到ggplot2 docs这是一个很棒的资源,那么我将会失去工作,这些资源都包含完整的记录。当你不知道如何用ggplot做某事时,他们往往是最好的开始。

的“翻译”为您在目前的框架上面引述的代码是:

scale_x_date(breaks='days', labels=date_format("%d%b")) 

这将要求包scales。除非你有相当几次约会,你可能也想喜欢

theme(axis.text.x = element_text(angle=45)) 

的调整。如果你只是想标签您拥有数据的日期,尽量

scale_x_date(breaks=df$date, labels = date_format("%m/%d")) 

其中df$date是包含日期的数据框的列,当然,您可以使用您的首选日期格式字符串。

+0

谢谢。最终的代码努力摆脱没有数据的日期,但它仍然留下了这个开放的差距。我试图只有有数据的日期,没有差距。有没有办法将酒吧移动到一起并消除开放空间? – user3585829

+0

如果有效日期间隔均匀,ggplot应该为你做这件事。如果它们不是均匀间隔的,但是你希望它们在后续值之间有相同的间隔显示,那么你需要告诉ggplot忽略这些是日期的事实,只要把它们当作有序集合的标签就可以了。你可以用'df $ date < - factor(df $ date)'完成此操作。 – tegancp