我在R中使用ggplot2并且使用geom_point时遇到散点图问题。我有基本的x,y散点图但是试图根据另一个变量着色点:EVENT。 EVENT要么“湿”,要么“干”。我尝试将EVENT更改为一个因素,因为它只是两个级别,但这并没有改变任何东西。情节似乎横向缩小。如果我用连续变量切换EVENT,我可以得到一个“正常”的情节,但是当我输入因子或分类时,我得到一个缩小的情节。这是我的代码和情节。
ggplot(data=mydata, aes(x=conversion.ratio, y=sampler.purchaser.ratio)) +
geom_point(alpha=.5, aes(color=EVENT.WET.DRY))`
有什么想法吗?我错过了什么吗?我尝试制作一个可重现的例子:
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有什么关系。我已经遇到过一些问题,因为它最初是一个SAS文件,它被转移到我带入R的SPSS文件中。
答案 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)