R 使用列名作为ggplot的x

R 使用列名作为ggplot的x,r,ggplot2,R,Ggplot2,我的数据集如下所示,其中有一个ID列为1或2,然后还有几个其他列标记了几个度量值 ID 1 2 3 ... 1 0.3002 0.05 0.4 2 0.12 0.5 0.32 1 0.05 0.12 0.2 1 0.74 0.12 0.32 我试图使用ggplot制作一个箱线图,其中x是非ID列名,y是表中的度量值,填充是ID。这是我当前的代码尝试,但这给了我一个错误,即

我的数据集如下所示,其中有一个ID列为1或2,然后还有几个其他列标记了几个度量值

ID      1        2     3    ...
1       0.3002   0.05  0.4
2       0.12     0.5   0.32
1       0.05     0.12  0.2
1       0.74     0.12  0.32
我试图使用ggplot制作一个箱线图,其中x是非ID列名,y是表中的度量值,填充是ID。这是我当前的代码尝试,但这给了我一个错误,即“美学必须是长度1或与数据相同”:

ggplot(df,aes(x=colnames(df),y=df[,-1],fill=ID))+
geom_boxplot()


任何帮助都将不胜感激。

如果我理解正确,您可以使用
tidyverse
方法。 我在本例中使用
iris
数据集。 您可以使用
geom\u jitter()


如果我理解正确,您可以使用
tidyverse
方法。 我在本例中使用
iris
数据集。 您可以使用
geom\u jitter()

您的数据:

df <- read.table(text = 
  "ID 1      2    3
  1  0.3002 0.05 0.4
  2  0.12   0.5  0.32
  1  0.05   0.12 0.2
  1  0.74   0.12 0.32", header = T)
然后,您可以简单地绘制:

ggplot(long_df, aes(x = Key, y = Value)) + 
  geom_boxplot()
这将导致以下图表:

您的数据:

df <- read.table(text = 
  "ID 1      2    3
  1  0.3002 0.05 0.4
  2  0.12   0.5  0.32
  1  0.05   0.12 0.2
  1  0.74   0.12 0.32", header = T)
然后,您可以简单地绘制:

ggplot(long_df, aes(x = Key, y = Value)) + 
  geom_boxplot()
这将导致以下图表:


其他答案中缺少的是,您希望根据ID设置填充。您的样本没有包含足够的数据来真正显示不同的颜色ID=2只有一组观察值,因此我创建了一些具有类似结构的随机数据来说明

库(tidyverse)
种子集(123)
df#A tible:6 x 3
#>ID键值
#>       
#> 1     1 1     -0.560 
#> 2     2 1     -0.230 
#> 3     1 1      1.56  
#> 4     2 1      0.0705
#> 5     1 1      0.129 
#> 6     2 1      1.72
然后,要为每个ID填充箱线图,请将ID设为因子。您可以在数据集中这样做,也可以像我在这里做的那样,在您的
aes
中这样做

ggplot(df_long,aes(x=key,y=value,fill=as.factor(ID)))+
geom_箱线图()


由(v0.2.0)于2018-06-03创建。

其他答案缺少的是,您希望根据ID设置填充。您的样本没有包含足够的数据来真正显示不同的颜色ID=2只有一组观察值,因此我创建了一些具有类似结构的随机数据来说明

库(tidyverse)
种子集(123)
df#A tible:6 x 3
#>ID键值
#>       
#> 1     1 1     -0.560 
#> 2     2 1     -0.230 
#> 3     1 1      1.56  
#> 4     2 1      0.0705
#> 5     1 1      0.129 
#> 6     2 1      1.72
然后,要为每个ID填充箱线图,请将ID设为因子。您可以在数据集中这样做,也可以像我在这里做的那样,在您的
aes
中这样做

ggplot(df_long,aes(x=key,y=value,fill=as.factor(ID)))+
geom_箱线图()


由(v0.2.0)于2018-06-03创建。

,然后绘制<代码>库(tidyverse);聚集(df,key,value,-1)%%>%ggplot(aes(key,value,fill=ID))+geom_boxplot(),然后进行绘图<代码>库(tidyverse);聚集(df,key,value,-1)%%>%ggplot(aes(key,value,fill=ID))+geom_boxplot()谢谢,如果您的键由多列组成,您会怎么做?我无法使用gather正确获取语法。您可以执行多个
gather
调用。如果您的情况与问题中的情况不同,您应该发布新问题或查找已发布的涉及多个键的问题。谢谢,如果您的键包含多个列,您会怎么做?我无法使用gather正确获取语法。您可以执行多个
gather
调用。如果你的问题与你的问题不同,你应该发布一个新的问题,或者找到一个已经发布的关于多个关键点的问题