如何修复ggplot2中的“离散值提供给连续比例尺”错误

4
我想使用ggplot2绘制我在Excel中计算出的平均丰度数据和标准误差数据的柱状图。当我尝试在gglot2中绘制我的数据时,出现错误Error: Discrete value supplied to continuous scale
我尝试直接从以逗号分隔格式(CSV)导入Excel数据,但这没有起作用,因此我尝试从头开始创建数据框架,但仍出现同样的错误。
以下是产生错误所需的最小代码。首先,我创建列数据。
Parasite <- c("Heligmosomoides", "Heligmosoma", "Trichuris",
              "Mastophorus", "Auncotheca", "Syphacia", "Tapeworms")
Mean <- c(0.166, 0.053, 0.012, 0.012, 0.0072, 0.287, 0.067)
SE <- c(0.060, 0.036, 0.012, 0.012, 0.042, 0.125, 0.026)

然后,我创建了数据帧。

DF6 <- data.frame(Parasite, Mean, SE)

然后我加载ggplot2。
library(ggplot2)

然后我使用 ggplot2 创建了具有误差线的条形图。

BGPA <- ggplot(DF6, aes(x = DF6$Parasite, y = DF6$Mean)) +
    geom_bar(color="black") +
    geom_errorbar(aes(ymin = DF6$Parasite, ymax = DF6$Mean+DF6$SE))

然后把它打印出来。

print(BGPA)

这是我遇到错误的地方。

Error: Discrete value supplied to continuous scale

1
在ggplot中,去掉DF6$。并且你有ymin = Parasite,它应该是ymin = Mean - SE - Rui Barradas
2
尝试这段代码:ggplot(DF6,aes(x=Parasite,y=Mean))+geom_col(color="black")+geom_errorbar(aes(ymin=Mean-SE,ymax=Mean+SE))。通常在ggplot美学中不要使用$,因为它们使用非标准评估。 - teunbrand
谢谢,我尝试了你们两个推荐的方法,它起作用了!错误也是我使用geom_bar而不是geom_col。太棒了! - OpenSauce
1个回答

1
问题在于你将 ymin 设置为了 寄生虫 而不是 均值-标准误。另外,要么使用带有 stat = "identity"geom_bar,要么使用 geom_col
BGPA <- ggplot(DF6, aes(x = Parasite, y = Mean)) +
    geom_bar(color = "black", stat = "identity") +
    geom_errorbar(aes(ymin = Mean-SE, ymax = Mean+SE))
BGPA

这一切都是正确的,除了出于美观目的我删除了负SE。谢谢您让我知道如何正确使用geom_bar! - OpenSauce
1
没问题。如果你想去掉下侧SE,那么只需要使用 ymin = Mean 即可。 - Arienrhod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接