Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.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/9/blackberry/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 在ggplot2中绘制个体和平均值:错误“;错误:`mapping`必须由`aes()``创建;_R_Ggplot2_Plot_Aes - Fatal编程技术网

R 在ggplot2中绘制个体和平均值:错误“;错误:`mapping`必须由`aes()``创建;

R 在ggplot2中绘制个体和平均值:错误“;错误:`mapping`必须由`aes()``创建;,r,ggplot2,plot,aes,R,Ggplot2,Plot,Aes,我试图在同一个GG图上绘制个体和平均值。我需要让颜色在个体和平均值之间保持一致。Aes似乎是我问题的根源,我有更多的观察值>3000,了解平均值和个体在绘图空间中的位置将非常重要。 我已尝试将所有内容分离为data.frames,以解决在aes函数中使用“$”的问题。我认为在aes函数中使用“颜色”或“标签”时会出现问题。也许,ggplot不喜欢物种名称的数量不一样 # Libraries needed for example library(dplyr) library(ggplot2) #

我试图在同一个GG图上绘制个体和平均值。我需要让颜色在个体和平均值之间保持一致。Aes似乎是我问题的根源,我有更多的观察值>3000,了解平均值和个体在绘图空间中的位置将非常重要。 我已尝试将所有内容分离为data.frames,以解决在aes函数中使用“$”的问题。我认为在aes函数中使用“颜色”或“标签”时会出现问题。也许,ggplot不喜欢物种名称的数量不一样

# Libraries needed for example
library(dplyr)
library(ggplot2)

# Individuals PC1 and PC2 values
pc1 <- c(1,2,3,4,5,6,7,8,9,10)
pc2 <- c(4,5,6,7,8,9,10,11,12,13)
species <- c("D.a", "D.a", "D.b","D.b","D.c","D.c","D.d","D.d", "D.e", 
"D.e")

# Individual data frame
P1 <- cbind.data.frame(species,pc1,pc2)

# Averages of individuals
P2 <- P1 %>% group_by(species) %>%  summarise(pc1 = mean(pc1), pc2 = 
mean(pc2))

# GGplot
ggplot(P1, aes(x= pc1, y= pc2, color= species)) + geom_point(alpha= 0.2) 
+ geom_point(P2)
#例如需要库
图书馆(dplyr)
图书馆(GG2)
#个人PC1和PC2值

pc1明确说明数据源和aes映射,它应该工作:

ggplot(P1) + 
    geom_point(alpha = 0.2, aes(x = pc1, y = pc2, color = species)) +
    geom_point(data = P2, aes(x = pc1, y = pc2, color = species))

您正在
geom\u point
中传递整个数据集。您可能需要
中的'P2'收集为'long'格式是否需要
库(tidyr);聚集(P2,键,val,pc1:pc2)%>%ggplot(aes(x=键,y=val,颜色=物种))+geom_点(alpha=0.2)
Hello Akrun!这不是我想要的,我想要PC1和PC2分别位于X轴和Y轴上。我怎样才能将平均值的标签放在图表上?同时保持各个点的颜色?非常感谢,我不完全明白你的意思;是这个吗?添加到代码末尾。+geom_text(data=P2,aes(x=pc1,y=pc2,label=paste(pc1,,,,,pc2)))我猜出来了!我只需要对aes元素更具体一些。