R中的mpg数据集

时间:2019-03-16 00:01:25

标签: r ggplot2

我正在尝试根据传输类型在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

1 个答案:

答案 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")

enter image description here

我遗漏了所有非标准ggplot内容,因为我不确定它来自哪个软件包。无论如何,它似乎与您的问题无关,因此您应该可以将其重新添加。