2016-12-06 10 views
1

ggplot2에서 사용하여 분산 형 플롯을 만듭니다. x 축에서 모든 값을 볼 수 없습니다. 또한 X 축에서 NA을 제거합니다. NA을 유지하고 x 축에 표시된 피쳐의 수를 제어하는 ​​방법은 무엇입니까?qplot을 사용하여 gplplot2 scatterplot에 NA가 표시되지 않습니다.

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

데이터 : 사용자 정의 진드기 및 라벨 우리가 scale_x_continuous을 사용할 수 있습니다에 대한 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

? 아마 볼 수 있습니다 [scale_x_continuous] (http://docs.ggplot2.org/0.9.3/scale_continuous.html) – zx8754

+0

올바른 방향으로 나를 가리켜 주셔서 감사. 이제 X 축에 레이블을 더 추가 할 수 있습니다. 그것은 문제 중 하나를 해결합니다. – Shivendra

+0

어떤 문제가 해결되지 않습니까? – Gregor

답변

1

. 경고 이하

는 NA 값을 갖는 행이 플롯 데이터로부터 삭제하는 것을 의미 :

이 NA는 X 축에 표시하도록 (geom_point)

해결 누락 값을 포함하는 1 열을 제거 우리 NA 값에 대해 몇 가지 값을 할당해야합니다. 여기서는 플롯의 오른쪽 끝에 NA 값을 플로팅합니다. xaxis (temp 변수)의 최대 값을 가져온 다음 사용자 정의 x 축 레이블을 사용합니다. 당신은 "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 '로 취급했다는 것을 의미합니다.이 경우에는'continuous'로 취급하고 있으므로 어려움에 직면하고 있습니다. – Shivendra