沿Y轴的神秘线(ggplot2,R)

沿Y轴的神秘线(ggplot2,R),r,ggplot2,time-series,R,Ggplot2,Time Series,我正在使用ggplot绘制时间序列数据,当我将x轴设置为日期时,这些神秘的线显示出来。之前,我只是使用了一个年份和月份的字符串。这些行当时没有显示出来,但我需要将sale date变量转换为日期类,以使x刻度正确。我在其他绘图中没有遇到此错误,我使用相同的函数将时间变量转换为日期类 我的数据有四列,1)带有我的销售日期的字符串,2)分位数按月的平均价格,3)分位数,4)我的销售日期字符串,但作为日期类 # Melt contains the sale date in string format,

我正在使用ggplot绘制时间序列数据,当我将x轴设置为日期时,这些神秘的线显示出来。之前,我只是使用了一个年份和月份的字符串。这些行当时没有显示出来,但我需要将sale date变量转换为日期类,以使x刻度正确。我在其他绘图中没有遇到此错误,我使用相同的函数将时间变量转换为日期类

我的数据有四列,1)带有我的销售日期的字符串,2)分位数按月的平均价格,3)分位数,4)我的销售日期字符串,但作为日期类

# Melt contains the sale date in string format, the value I want to plot, and quantile that mean corresponds to
  melt <- rbind(melt1, melt2, melt3, melt4, melt5)
  colnames(melt) <- c("saledate", "mean", "Quantile")

# Here I create my Date class variable to be plotted on the x axis
  melt$time <- lubridate::ymd(melt$saledate)
# So my legend is discrete  
  melt$Quantile <- as.factor(melt$Quantile)

  tiff(paste("./PLOTS/allquantiles_", varofinterest.string, ".tif"), width=6, height=5, res=200, units='in')
  a <- ggplot(melt, aes(x=time, y=mean, group=Quantile,
                        color=Quantile)) +
    geom_smooth() +
    xlab(paste(xlab)) + ylab(paste(ylab)) +
    ggtitle(paste("Average", varofinterest.title, "by Month: All Quantiles")) +
    theme(panel.grid = element_blank(),
          plot.title = element_text(hjust=0.5, face = 'bold', size = 14))
  print(a)
  dev.off()
#Melt包含字符串格式的销售日期、我要绘制的值以及平均值对应的分位数

很可能您的数据格式不正确。您可以编辑问题吗?使用dput(head(melt,20))的结果粘贴数据样本。
看起来您的“平均”变量(在y轴上)已结束为字符或因子数据,因此ggplot正在尝试创建一个显示每个唯一值的轴。通常情况下,这将无法正确绘制(因为每个数据点将有一个组),但您显式调用
group=Quantile
可确保仅创建5个组进行平滑处理。@Dave2e谢谢大家,您是正确的。数据确实在某一点上转换成了一个因子,但转换回数值就成功了。这样一个基本的问题,我甚至没有想过要检查-谢谢你的提醒。