我正试图用比值比绘制一幅森林图;但是我一直遇到一个问题我得到这个消息“-x中的错误:当我运行代码时,一元运算符”的参数无效。
我已经在代码行的开头检查了额外的“+”,但似乎找不到任何。
这是我尝试运行的代码:
ggplot(Limit_water_Round, aes(y = term, x = oddsratio)) +
geom_point(shape = 18, size = 5) +
geom_errorbarh(aes(xmin = conflower, xmax = confupper), height = 0.25) +
geom_vline(xintercept = 1, color = "red", linetype = "solid", cex = 1, alpha = 0.5) +
scale_y_continuous(name = "", breaks=1:11, labels = Limit_water_Round$term,
trans = "reverse") +
xlab("Odds Ratio (95% CI)") +
ylab(" ") +
theme_bw() + theme(panel.border = element_blank(),
panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.line = element_line(colour = "black"),
axis.text.y = element_text(size = 12, colour = "black"),
axis.text.x.bottom = element_text(size = 12, colour = "black"),
axis.title.x = element_text(size = 12, colour = "black"))
1条答案
按热度按时间xa9qqrwz1#
您遇到的错误消息可能是在对数据执行的算术运算出现问题时产生的,而不一定是ggplot代码本身的问题。从你的代码中,似乎有一个错字在
geom_errorbarh
。以下是故障排除和解决问题的几个步骤:
1.更正水平误差条的拼写错误:
将
geom_errorbarh
替换为geom_errorbar
,并适当调整aes
Map。由于您将项放在y轴上,比值比放在x轴上,因此可能不需要水平误差条函数;标准的geom_errorbar
可能与你的翻转坐标一起工作。2.检查数据类型和值:
确保
aes()
Map中的所有变量(oddsratio
、conflower
、confupper
和term
)在Limit_water_Round
Dataframe 中可用,并且具有正确的数据类型和值。错误消息可能是由于尝试对非数值数据类型执行算术或处理NA
或NULL
值而导致的。3.检查和验证:
您可能需要打印或检查
Limit_water_Round
Dataframe ,以确保它包含您所期望的内容。如果可能,请尝试使用数据的子集或虚拟数据运行ggplot
代码,以确定可能发生错误的位置。建议/调整编码:
下面是对代码的粗略调整(您可能需要根据特定数据和所需输出进一步调整):