2016-12-06 61 views
1

我使用qplotggplot2做散點圖。我無法看到x軸上的所有值。另外,它將從x軸移除NA。如何保留NA並控制X軸顯示的特徵數量?不在ggplot2散點圖中顯示使用qplot

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

你是什麼意思「無法看到在x軸的所有值」?也許看到[scale_x_continuous](http://docs.ggplot2.org/0.9.3/scale_continuous.html) – zx8754

+0

謝謝你指點我正確的方向。我現在可以在我的x軸上添加更多標籤。這解決了其中一個問題。 – Shivendra

+0

它解決了什麼問題? – Gregor

回答

1

對於自定義蜱和標籤,我們可以使用scale_x_continuous

下面警告裝置與NA值的行被從繪圖數據中刪除:

除去含有缺失值(geom_point)

解決方法,使NA顯示在x軸1行,我們需要爲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

+0

雖然這可以起作用,但我的實際代碼可以生成具有巨大變化的x軸範圍的500多個功能的圖形,而'ggplot2'可以照顧並顯示相應的標籤。如果我把範圍'1:n',它總是會填滿所有的標籤,並且對於一些範圍會變得非常混亂。 'scale_x_continuous(na.value = TRUE)'保持NA值,只在x軸上不顯示。 – Shivendra

+0

@Shivendra'na.value'參數需要一個數字。當我們將它設置爲「TRUE」時,它將被轉換爲「1」並且正在繪製。 – zx8754

+0

噢,是的,我在這裏看到問題。我想要一個非數字以連續的尺度顯示。 對於某些「NA」值顯示的特徵。這意味着'ggplot2'將它們當作'factor',而在這種情況下,它將它們視爲'連續的',因此我面臨着困難。 – Shivendra