我在 R 中使用 ggplot 或 boxplot 函数绘制箱线图有问题。我在这里解决了一些问题,但没有一个能解决我的问题。
我的数据集包含 20 个样本,每个样本有 10 个元素。我正在尝试生成箱线图,所以这就是我到目前为止所做的:
NC_RSD.ca.m <- melt(NC_RSD.ca, id.var="Sample")
Run Code Online (Sandbox Code Playgroud)
这是示例数据:
structure(list(Sample = structure(c(15L, 16L, 17L, 18L, 19L,
20L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L,
14L), .Label = c("NC10", "NC11", "NC12", "NC13", "NC14", "NC15",
"NC16", "NC17", "NC18", "NC19", "NC20", "NC21", "NC22", "NC23",
"NC4", "NC5", "NC6", "NC7", "NC8", "NC9"), class = "factor"),
Al = c(21.54055979, 13.89504614, 20.19173286, 15.39846212,
18.6210721, 19.3885953, 17.29371421, 13.85368756, 15.59018781,
14.81984326, 41.64842461, 16.29394917, 14.7150582, …
Run Code Online (Sandbox Code Playgroud) 我试图绘制两个因子变量,并在图中用 % 标记结果。
我已经检查了这篇文章和他/她提供的链接:
您在这里看到的 ggplot 行实际上来自推荐的帖子之一:
sex <- c("F","F","M", "M", "M", "F","M","F","F", "M", "M", "M", "M","F","F", "M", "M", "F")
behavior <- c("A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B", "C", "B", "C", "A")
BehSex <- data.frame(sex, behavior)
ggplot(BehSex, aes(x= factor(sex), fill= factor(behavior), y = (..count..)/sum(..count..)))+
geom_bar() +
stat_bin(geom = "text",
aes(label = paste(round((..count..)/sum(..count..)*100), "%")),
vjust = 5)
Run Code Online (Sandbox Code Playgroud)
但是,当我使用该行时,出现以下错误:
错误:StatBin 需要一个连续的 x 变量:x 变量是离散的。也许你想要 stat="count"?
我尝试在 geom_bar() 中使用 stat="count" 但它似乎没有按预期工作。
三个问题:
1)我做错了什么?
2)我怎样才能绘制出我想要的图? …