2015-10-21 84 views
0

我在R中使用ggplot2,並且在使用geom_point的散點圖時遇到了問題。我有基本的x,y散點圖,但試圖根據另一個變量着色點:EVENT。 EVENT要麼是「潮溼」要麼是「乾燥」。我嘗試將EVENT改爲一個因素,因爲它只是兩個級別,但這並沒有改變任何東西。情節似乎水平地收縮。如果我用連續變量切換EVENT,則可以得到一個「正常」圖,但當輸入因子或分類時會得到一個縮小的圖。這是我的代碼和情節。在R中使用ggplot2中的geom_point的問題

ggplot(data=mydata, aes(x=conversion.ratio, y=sampler.purchaser.ratio)) + 
    geom_point(alpha=.5, aes(color=EVENT.WET.DRY))` 

resulting plot

任何想法?我錯過了什麼嗎?我試圖做一個可重複的例子:

EVENT.WET.DRY<-c(rep("Dry",7),rep("Wet",18)) 
conversion.ratio=rnorm(25,.5,.1) 
sampler.purchaser.ratio=rnorm(25,.7,.05) 
mydata<-data.frame(factor(EVENT.WET.DRY), conversion.ratio, sampler.purchaser.ratio) 

ggplot(data=mydata, aes(x=conversion.ratio, y=sampler.purchaser.ratio)) + 
    geom_point(aes(color=EVENT.WET.DRY)) 

然而,這種情況很好。它與原始數據集中的變量EVENT.WET.DRY有什麼關係。我已經有一些問題,因爲它本來是轉移到SPSS文件中的SAS文件,我將到R.

+1

你是什麼意思的「收縮」? x軸是否應該包含更大的值?圖像文件本身的大小取決於在你自己運行'ggplot'代碼後發生的事情。你確定其他點不是因爲過度密謀而隱藏的? – joran

+2

如果您使用我們可以使用的一些示例輸入數據來提供[可重現的示例](http://stackoverflow.com/questions/5963269/how-to-make-a- great-r-reproducible-example),它將會有所幫助去測試。你確定你的顏色編碼正確嗎? 'table(mydata $ EVENT.WET.DRY)'返回什麼?另外,不需要在'geom_point'中重新指定'data ='。它將繼承主要的'ggplot'調用。 – MrFlick

+0

我的意思是「收縮」,就是當我的情節瀏覽器顯示情節時,我甚至無法看到它,因爲它被壓扁在一起。我創建了與圖像文件本身相反的情節後,添加了一些我看到的內容。 –

回答

0

因此,這裏有EVENT.WET.DRY水平:

levels(viniq$EVENT.WET.DRY) 
[1] "Dry                                                               " 
[2] "Wet                                                               " 

因此,@aosmith你是正確的。每個關卡後面都有一些空格。

levels(mydata$EVENT.WET.DRY) <- list("Dry"="Dry                                                               ", "Wet"="Wet                                                               ") 

這沒有把戲!搜索後,我發現了一個更好的方法來做到這一點:

trim.trailing <- function (x) sub("\\s+$", "", x) 
mydata$EVENT.WET.DRY <- trim.trailing(mydata$EVENT.WET.DRY) 
+0

謝謝大家的幫助。我知道,沒有可重複的例子,這幾乎是不可能的,但我無法重新創建它! –