【发布时间】:2019-12-18 11:54:17
【问题描述】:
我想将我在 Excel 中计算的平均丰度数据和标准误差数据绘制为ggplot2 中的条形图。当我尝试在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
【问题讨论】:
-
在ggplot中,去掉
DF6$。你有ymin = Parasite,应该是ymin = Mean - SE。 -
试试这个代码:
ggplot(DF6,aes(x=Parasite,y=Mean))+geom_col(color="black")+geom_errorbar(aes(ymin=Mean-SE,ymax=Mean+SE))。一般来说,不要在 ggplot 美学中使用$,因为它们使用的是非标准评估。 -
谢谢我已经尝试了你们推荐的方法并且成功了!错误也是我使用 geom_bar 而不是 geom_col。太棒了!