R分组条形图

时间:2017-09-09 07:15:52

标签: r

我对R studio很新,所以我提前道歉。我需要帮助来创建一个分组的条形图。我有三个变量: “时间”:转换为连续变量 “治疗”:“Con”,“Hya” “试用”:“T1”,“T2”,“T3” 我想生产这样的东西:

应该有三组三列相互堆叠。时间在Y轴上;在X轴上试验(1,2和3);对应于彩色柱的处理(Hya =灰色,Con =白色),并附有描述处理颜色的图例。

以下是我的数据结构:

'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 ...

我收到此错误消息:

> 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

如果有人能够提供帮助我会非常感激,我一直在努力:(

1 个答案:

答案 0 :(得分:1)

我认为提及" ggplot2"包在这里。使用这个包,可以很容易地创建堆积条形图。我不确定您正在使用的数据框,因为您只提供数据结构的快照,但我希望我创建的数据框作为示例将有助于向您展示用于创建此类图的基本功能。 (你可以在RStudio中复制粘贴并运行代码。确保在运行library()函数之前安装ggp​​lot2 [install.packages(" ggplot2")]包。)

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.

上面的代码将创建一个数据框和一个条形图。分组使用参数&#34; group&#34;,颜色设置为&#34; fill&#34;。当然你可以修改着色等。既然你是新的RStudio / R我建议你查看ggplot的文档。

我希望这个例子有帮助...