错误"geom_point需要以下缺失的美感:y".使用geom_point时 [英] Error "geom_point requires the following missing aesthetics: y" when using geom_point

查看:185
本文介绍了错误"geom_point需要以下缺失的美感:y".使用geom_point时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要从数据框中绘制几列.一般来说,在此图表中,我需要将三个选定列的值绘制为一行,其中根据以下数据框,其中 X 表示 Release 列:

I need to plot a few columns from my dataframe. Generally speaking, in this chart, I need the values of the three selected columns to be plotted as one row, where X will represent the Release column, as per the following dataframe:

Release,AddedClasses,ModifiedClasses,RemovedClasses,AddedMethods,ModifiedMethods,RemovedMethods,AddedImports,RemovedImports,AddedFields,ModifiedFields,RemovedFields
v1,39,33,0,43,25,0,3,0,21,0,0
v2,48,62,0,88,56,1,35,0,42,0,2
v3,54,93,0,117,95,1,67,0,67,0,2
v4,55,116,29,124,134,5,69,2,121,0,5

对于行,我需要从以下列中绘制值: AddedClasses ModifiedClasses RemovedClasses .

For rows, I need to plot values from the following columns: AddedClasses, ModifiedClasses, RemovedClasses.

我尝试使用以下代码绘制图形:

I tried to plot the graph with the following code:

ggplot(data=ReminderDOPTransformationsResume, aes(x=Release, group = 1)) + 
geom_line(aes(y=AddedClasses,color=AddedClasses), size=2) + 
geom_point(aes(color = AddedClasses), size=5, stroke = 0, shape = 16) + 
geom_line(aes(y=ModifiedClasses,color=ModifiedClasses), size=2) + 
geom_point(aes(color = ModifiedClasses), size=5, stroke = 0, shape = 16) + 
geom_line(aes(y=RemovedClasses,color=RemovedClasses), size=2) + 
geom_point(aes(color = RemovedClasses), size=5, stroke = 0, shape = 16) + 
scale_linetype_manual(values=c("solid", "solid")) +
theme_bw(base_size = 24) + theme(plot.title = element_text(hjust = 0.5), legend.title=element_blank()) 

但是在执行时,会显示以下错误:

But when executing, the following error is displayed:

Error: geom_point requires the following missing aesthetics: y

如果我删除了 geom_point 部分,则会绘制图形,但是线条颜色和标题会出现错误:

If I remove the geom_point parts, the graph is plotted, but there are errors in line colors and captions:

推荐答案

将数据从宽"格式转换为长"格式-一列用于变量名,另一列用于变量名-和 aes()将为您完成所有工作.

Transform your data from "wide" to "long" format - one column for variable names, another for their values - and aes() will do all the work for you.

library(dplyr)
library(tidyr)
library(ggplot2)

ReminderDOPTransformationsResume <- tibble(Release = paste0("v", 1:4), 
                                           AddedClasses = c(39, 48, 54, 55), 
                                           ModifiedClasses = c(33, 62, 93, 116),
                                           RemovedClasses = c(0, 0, 0, 29),
                                           AddedMethods = c(43, 88, 117, 124))

ReminderDOPTransformationsResume %>% 
  select(Release, AddedClasses, ModifiedClasses, RemovedClasses) %>% 
  gather(Var, Val, -Release) %>% 
  ggplot(aes(Release, Val, group = Var)) + 
  geom_line(aes(color = Var)) + 
  geom_point(aes(color = Var))

结果:

这篇关于错误"geom_point需要以下缺失的美感:y".使用geom_point时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆