R + ggplot2:如何从x轴隐藏缺失日期? [英] R + ggplot2: how to hide missing dates from x-axis?
问题描述
dts < - c(as.Date(c('2011-01-10','2011-01-11 ','2011-01-15','2011-01-16')))
df< - data.frame(dt = dts,val = seq_along(dts))
ggplot(df ,aes(dt,val))+ geom_point()+
scale_x_date(format ='%d%b',major ='days')
然后将日期数据转换为一个因子。目前,ggplot正在解释你所告诉数据的意义 - 连续的日期范围。您不需要这个比例,您需要一个分类比例:
require(ggplot2)
dts < - as.Date(c('2011-01-10','2011-01-11','2011-01-15','2011-01-16'))
df< - data.frame (dt = dts,val = seq_along(dts))
ggplot(df,aes(dt,val))+ geom_point()+
scale_x_date(format ='%d%b',major ='天')
与
df < - data.frame(dt =因子(格式(dts,format ='%d%b')),
val = seq_along(dts))
ggplot (df,aes(dt,val))+ geom_point()
产生:
?
Say we have the following simple data-frame of date-value pairs, where some dates are missing in the sequence (i.e. Jan 12 thru Jan 14). When I plot the points, it shows these missing dates on the x-axis, but there are no points corresponding to those dates. I want to prevent these missing dates from showing up in the x-axis, so that the point sequence has no breaks. Any suggestions on how to do this? Thanks!
dts <- c(as.Date( c('2011-01-10', '2011-01-11', '2011-01-15', '2011-01-16')))
df <- data.frame(dt = dts, val = seq_along(dts))
ggplot(df, aes(dt,val)) + geom_point() +
scale_x_date(format = '%d%b', major='days')
Turn the date data into a factor then. At the moment, ggplot is interpreting the data in the sense you have told it the data are in - a continuous date scale. You don't want that scale, you want a categorical scale:
require(ggplot2)
dts <- as.Date( c('2011-01-10', '2011-01-11', '2011-01-15', '2011-01-16'))
df <- data.frame(dt = dts, val = seq_along(dts))
ggplot(df, aes(dt,val)) + geom_point() +
scale_x_date(format = '%d%b', major='days')
versus
df <- data.frame(dt = factor(format(dts, format = '%d%b')),
val = seq_along(dts))
ggplot(df, aes(dt,val)) + geom_point()
which produces:
Is that what you wanted?
这篇关于R + ggplot2:如何从x轴隐藏缺失日期?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!