首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >R分组条形图

R分组条形图
EN

Stack Overflow用户
提问于 2017-09-09 15:15:52
回答 1查看 690关注 0票数 1

我是R工作室的新手,所以我提前道歉。我需要帮助来创建一个分组条形图。我有三个变量:"Time":转换为连续变量"Treatment":"Con","Hya“"Trial":"T1","T2","T3”我想产生这样的结果:

应该有三组三列并排堆叠在一起。Y轴上的时间;X轴上的试验(1,2和3);对应于彩色柱(Hya=grey,Con=white)的处理,以及说明处理颜色的图例。

下面是我的数据结构:

代码语言:javascript
运行
复制
'data.frame':   102 obs. of  3 variables:
 $ Trial    : int  1 1 1 1 1 1 1 1 1 1 ...
 $ Treatment: $ Trial    : int  1 1 1 1 1 1 1 1 1 1 ...
 $ Treatment: Factor w/ 2 levels "Control","Hyaluronan": 1 1 1 1 1 1 1 1 1 1 ...
 $ Time     : num  11 7 7.68 7.7 7 3 5 5.48 4 6 ...

我收到这个错误消息:

代码语言:javascript
运行
复制
> barplot(table(Biopsy$Time, Biopsy$Treatment, Biopsy$Trial))
Error in barplot.default(table(Biopsy$Time, Biopsy$Treatment, Biopsy$Trial)) : 
  'height' must be a vector or a matrix

如果有人能帮上忙,我将不胜感激,我已经尝试了很久了:

EN

回答 1

Stack Overflow用户

发布于 2017-09-10 03:39:52

我认为在这里提到"ggplot2“包是有用的。有了这个软件包,创建堆叠条形图非常容易。我不确定您正在使用的数据框,因为您只提供了数据结构的快照,但我希望我创建的示例数据框将有助于向您展示用于创建此类图的基本函数。(只需在RStudio中复制粘贴并运行代码即可。确保在运行库()函数之前安装ggplot2 install.packages("ggplot2")包。)

代码语言:javascript
运行
复制
trial <- c(1,1,1,1,2,2,2,2,3,3,3,3)
treatment <- c("Hya","Hya","Con","Con","Hya","Hya","Con","Con","Hya","Hya","Con","Con")
time <- c(1,7,1,7,2,8,2,8,3,9,3,9)

df <- data.frame(trial,treatment,time)

library(ggplot2)
ggplot(df, aes(y = time,
               x = trial,
               group = treatment)) +
  geom_bar(stat = "identity", position = "dodge", aes(fill = treatment))

The resulting plot can be found here.

上面的代码将创建一个数据框和一个条形图。分组是用参数"group“完成的,用"fill”设置的颜色。当然,您可以修改颜色等。因为您是RStudio/R新手,所以我建议您查看ggplot的文档。

我希望这个例子能对你有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46128133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档