NA不使用qplot显示在ggplot2散点图中

时间:2016-12-06 07:09:32

标签: r ggplot2 scatter-plot na

我正在使用qplot中的ggplot2制作散点图。我无法在x轴上看到所有值。此外,它正从x轴移除NA。如何保留NA并控制x轴显示的特征数量?

rate_plot = qplot(Result$temp, Result$CR, main="Rate", xlab=feature, ylab="Rate", size=I(3))+
  scale_x_discrete(drop=FALSE)

Plot looks like this

数据: Google Docs link

Result <- read.table(text = "   temp    NCH type    CH  i.type  CR
1   NA  1878464 nochurn 549371  churn   0.226280204
2   1.87    2236    nochurn 4713    churn   0.678227083
3   2.14    4945    nochurn 8530    churn   0.633024119
4   2.25    423 nochurn 972 churn   0.696774194
5   2.79    3238    nochurn 7692    churn   0.703751144
6   3.25    266817  nochurn 12678   churn   0.045360382
7   3.33    2132    nochurn 4295    churn   0.668274467
8   5.1 6683    nochurn 7743    churn   0.536739221
9   6   342554  nochurn 21648   churn   0.059439542
10  6.51    1785    nochurn 4764    churn   0.727439304
11  8   13668   nochurn 22751   churn   0.624701392
12  9.85    6005    nochurn 14687   churn   0.709791224
13  11.99   378 nochurn 850 churn   0.69218241", header = TRUE)

1 个答案:

答案 0 :(得分:1)

对于自定义刻度和标签,我们可以使用scale_x_continuous

警告下方表示从绘图数据中删除了具有NA值的行:

  

删除了包含缺失值的1行(geom_point)

解决方法是让NA显示在x轴上,我们需要为NA值指定一些值,这里我在绘图的右端绘制NA值。获取xaxis(temp变量)的最大值,然后使用自定义x轴标签。

library(ggplot2)

# set NA to max value + 1
plotDat <- Result
plotDat[ is.na(plotDat$temp), "temp"] <- max(ceiling(plotDat$temp), na.rm = TRUE) + 1

#plot with custom breaks and labels
ggplot(plotDat, aes(x = temp, y = CR)) +
  geom_point() +
  scale_x_continuous(breaks = 1:max(ceiling(plotDat$temp)),
                     labels = c(1:(max(ceiling(plotDat$temp)) - 1), "NA"))

enter image description here