Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的mpg数据集_R_Ggplot2 - Fatal编程技术网

R中的mpg数据集

R中的mpg数据集,r,ggplot2,R,Ggplot2,我正试图找出一种方法,根据变速器的类型在geom_点图上为我的点上色,但在mpg数据集中,自动变速器和手动变速器的“变速器”列有不同的名称。如何将trans列中的值重命名为Auto(自动变速器)和Manual(手动变速器)?我还附上了所需图表的图片供参考 以下是我的主要绘图代码: data <- mpg n <- nrow(mpg) mpg_auto <- subset(mpg, substring(trans[1:n],1,1)=="a") mpg_manual <-

我正试图找出一种方法,根据变速器的类型在geom_点图上为我的点上色,但在mpg数据集中,自动变速器和手动变速器的“变速器”列有不同的名称。如何将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

data这里有一个重新标记传输的好方法(我创建了一个名为
transmission
的新列,但您也可以轻松地覆盖现有列)

完成后,着色就很容易了:

gg <- ggplot(mpg, aes(x = displ, y = hwy) + 
  geom_point(aes(color = transmission))+
  labs(y = "Hwy MPG",
       x = "Displacement")

gg欢迎来到SO!您能否通过共享您的数据样本和您正在处理的代码使您的问题重现,以便其他人能够提供帮助(请不要使用
str()
head()
或屏幕截图)?您可以使用和包来帮助您实现这一点。另请参见&@Tung他们正在使用
ggplot2
中的mpg数据集。哦,没有任何代码很难帮上忙。到目前为止,您尝试了什么,它是如何工作的?下面是完整代码的链接和到目前为止我的图表的图片@Z.Lin Got it贴子已经更新了,因为Gregor的答案适合你,你应该把它标记为正确。因为你是问题的作者,只有你才能将问题标记为已回答。点击你在他的答案中看到的复选标记。太棒了!我觉得这是一行非常简单的代码,我一直都在遗漏它。非常感谢@Gregor
gg <- ggplot(mpg, aes(x = displ, y = hwy) + 
  geom_point(aes(color = transmission))+
  labs(y = "Hwy MPG",
       x = "Displacement")