我是R工作室的新手,所以我提前道歉。我需要帮助来创建一个分组条形图。我有三个变量:"Time":转换为连续变量"Treatment":"Con","Hya“"Trial":"T1","T2","T3”我想产生这样的结果:
应该有三组三列并排堆叠在一起。Y轴上的时间;X轴上的试验(1,2和3);对应于彩色柱(Hya=grey,Con=white)的处理,以及说明处理颜色的图例。
下面是我的数据结构:
'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
如果有人能帮上忙,我将不胜感激,我已经尝试了很久了:
发布于 2017-09-09 19:39:52
我认为在这里提到"ggplot2“包是有用的。有了这个软件包,创建堆叠条形图非常容易。我不确定您正在使用的数据框,因为您只提供了数据结构的快照,但我希望我创建的示例数据框将有助于向您展示用于创建此类图的基本函数。(只需在RStudio中复制粘贴并运行代码即可。确保在运行库()函数之前安装ggplot2 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.
上面的代码将创建一个数据框和一个条形图。分组是用参数"group“完成的,用"fill”设置的颜色。当然,您可以修改颜色等。因为您是RStudio/R新手,所以我建议您查看ggplot的文档。
我希望这个例子能对你有所帮助。
https://stackoverflow.com/questions/46128133
复制