首页 > 解决方案 > 为什么这些段没有正确绘制?

问题描述

所以,我有这个代码:

HealthyD1 <-  1
HealthyD2 <- 1.02739726
HealthyD4 <- 1.01369863

IllD1 <- 1
IllD2 <- 1.28
IllD4 <- 1.48


barplot(c(HealthyD1, HealthyD2, HealthyD4, IllD1, Ill3D2, IllD4), 
        ylim = c(0, 1.6), names.arg = rep(c("D1", "D2", "D4"), 2),
        ylab = "Number", main = "Number of patients",
        col = c("lightskyblue1", "lightskyblue3", "lightskyblue4",
                "plum1", "plum", "plum4"), xpd = FALSE)


segments(x0 = 0, y0 = 0, x1 = 7, lwd = 1.4)
segments(x0 = 0.22, y0 = -0.3, x1 = 3.6, lwd = 1.4)
segments(x0 = 3.83, y0 = -0.35, x1 = 7.15, lwd = 1.4)

axis(1, at = 1.99, labels = "Healthy", pos = -0.2, tick = FALSE)
axis(1, at = 5.55, labels = "Ill", pos = -0.2, tick = FALSE)

如您所见,我想使用条形图绘制数据。我还想在“健康”和“生病”上方画几个部分。几天前我运行了这段代码,它按我的意愿工作,但现在,这些段没有出现。为什么会这样?我该如何解决?提前致谢!

标签: r

解决方案


您正在尝试在条形下方绘制,我想您需要设置xpd=TRUE

barplot(c(HealthyD1, HealthyD2, HealthyD4, IllD1, IllD2, IllD4), 
        ylim = c(0, 1.6), names.arg = rep(c("D1", "D2", "D4"), 2),
        ylab = "Number", main = "Number of patients",
        col = c("lightskyblue1", "lightskyblue3", "lightskyblue4",
                "plum1", "plum", "plum4"), xpd = FALSE)


segments(x0 = 0, y0 = 0, x1 = 7, lwd = 1.4,xpd=TRUE)
segments(x0 = 0.22, y0 = -0.3, x1 = 3.6, lwd = 1.4,,xpd=TRUE)
segments(x0 = 3.83, y0 = -0.35, x1 = 7.15, lwd = 1.4,,xpd=TRUE)

axis(1, at = 1.99, labels = "Healthy", pos = -0.2, tick = FALSE)
axis(1, at = 5.55, labels = "Ill", pos = -0.2, tick = FALSE)

在此处输入图像描述


推荐阅读