R 使用列名作为ggplot的x
我的数据集如下所示,其中有一个ID列为1或2,然后还有几个其他列标记了几个度量值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 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
调用。如果你的问题与你的问题不同,你应该发布一个新的问题,或者找到一个已经发布的关于多个关键点的问题