我正在尝试根据传输类型在geom_point图上为我的点着色的方法,但是在mpg数据集中,trans列的自动和手动转换名称不同。如何将trans列中的值重命名为Auto(自动)和Manual(手动)?我还附上了所需图形的图片以供参考。
这是我的主要情节代码:
data <- mpg
n <- nrow(mpg)
mpg_auto <- subset(mpg, substring(trans[1:n],1,1)=="a")
mpg_manual <- subset(mpg, substring(trans[1:n],1,1)=="m")
mpg$trans <- factor(mpg$trans, levels=c(mpg_auto,mpg_manual),
labels = c("0","1"))
mpg_select <- subset(mpg, mpg$hwy > 30 & mpg$displ < 3)
mpg_select <- as.data.frame(mpg_select)
gg<- ggplot(mpg) + aes(x = displ, y = hwy) +
geom_point(aes(col = trans))+
geom_encircle(aes(x = displ, y = hwy),
data = mpg_select,
color= "darkgreen",
expand = .05,
size = 2) +
annotate_textp(x = .2, y = .9, size = 15,
label = "Efficient Vehicle", color = "darkgreen")+
labs(y = "Hwy MPG",
x = "Displacement")
ggMarginal(gg, type= "density", alpha = 0.5,
groupColour = TRUE, groupFill = TRUE)
Picture of the plot with the above code: https://ibb.co/fGMSXdn
答案 0 :(得分:2)
这是重新标记传输的好方法(我创建了一个名为transmission
的新列,但您也可以很容易地覆盖现有列)。
mpg$transmission = ifelse(substring(mpg$trans, 1, 1) == "a", "automatic", "manual")
现在完成了,着色很简单:
gg <- ggplot(mpg, aes(x = displ, y = hwy) +
geom_point(aes(color = transmission))+
labs(y = "Hwy MPG",
x = "Displacement")
我遗漏了所有非标准ggplot内容,因为我不确定它来自哪个软件包。无论如何,它似乎与您的问题无关,因此您应该可以将其重新添加。