更改多边形图的颜色并添加图例
change to colour of polygon plot and add legend
跟进来自
的问题
对于所有数据值,我如何更改为以下代码,以便切换 hmin2 条上编码的颜色。线的左侧应该是蓝色,右侧应该是红色。
FullRange = range(dataframe123, na.rm=TRUE)
BoxRanges = lapply(dataframe123, range, na.rm=TRUE)
plot(NULL, xlim=FullRange, ylim=c(0,3), yaxt="n", xlab="Value", ylab="")
abline(v=19.293)
axis(2, at=(0:2)+0.4, labels=c("hmin1", "hmin2","hmin3"),
lty=0, las=2)
for(i in 1:3) {
polygon(c(BoxRanges[[i]][1], BoxRanges[[i]][1], 19.293, 19.293),
c(i-1,i-0.2,i-0.2,i-1), col="red")
polygon(c(19.293, 19.293, BoxRanges[[i]][2], BoxRanges[[i]][2]),
c(i-1,i-0.2,i-0.2,i-1), col="blue")
}
此外,我如何在绘图中添加图例以指示颜色代表什么?
红色代表参数的负变化,蓝色代表参数的正变化。
卡了几个小时。任何帮助将不胜感激谢谢。
一个选项可以是在循环外为 hmin2
添加 polygon
。为了添加图例,您应该增加绘图区域(xlim
和 ylim
),以便图例可见。
plot(NULL, xlim=c(FullRange[1]-1, FullRange[2] +1), ylim=c(-1,4), yaxt="n", xlab="Value", ylab="")
abline(v=19.293)
axis(2, at=(0:2)+0.4, labels=c("hmin1", "hmin2","hmin3"),
lty=0, las=2)
for(i in c(1,3)) {
polygon(c(BoxRanges[[i]][1], BoxRanges[[i]][1], 19.293, 19.293),
c(i-1,i-0.2,i-0.2,i-1), col="red")
polygon(c(19.293, 19.293, BoxRanges[[i]][2], BoxRanges[[i]][2]),
c(i-1,i-0.2,i-0.2,i-1), col="blue")
}
i = 2
polygon(c(BoxRanges[[i]][1], BoxRanges[[i]][1], 19.293, 19.293),
c(i-1,i-0.2,i-0.2,i-1), col="blue")
polygon(c(19.293, 19.293, BoxRanges[[i]][2], BoxRanges[[i]][2]),
c(i-1,i-0.2,i-0.2,i-1), col="red")
legend(x = 20, y = 4.5, legend = "negative changes",
border = NULL, fill = "red",
bty = "n",
bg = "n")
legend(x = 20, y = 4, legend = "positive changes",
border = NULL, fill = "blue",
bty = "n",
bg = "n")
编辑
如果您想为情节添加标题,则必须在 plot
中使用 main
。要为您的行添加标签,您可以使用 text
:
plot(NULL, xlim=c(FullRange[1]-1, FullRange[2] +1), ylim=c(-1,4), yaxt="n", xlab="Value", ylab="", main = "Range of H min values with parameter changes")
abline(v=19.293)
axis(2, at=(0:2)+0.4, labels=c("hmin1", "hmin2","hmin3"),
lty=0, las=2)
for(i in c(1,3)) {
polygon(c(BoxRanges[[i]][1], BoxRanges[[i]][1], 19.293, 19.293),
c(i-1,i-0.2,i-0.2,i-1), col="red")
polygon(c(19.293, 19.293, BoxRanges[[i]][2], BoxRanges[[i]][2]),
c(i-1,i-0.2,i-0.2,i-1), col="blue")
}
i = 2
polygon(c(BoxRanges[[i]][1], BoxRanges[[i]][1], 19.293, 19.293),
c(i-1,i-0.2,i-0.2,i-1), col="blue")
polygon(c(19.293, 19.293, BoxRanges[[i]][2], BoxRanges[[i]][2]),
c(i-1,i-0.2,i-0.2,i-1), col="red")
legend(x = 20, y = 4.5, legend = "negative changes",
border = NULL, fill = "red",
bty = "n",
bg = "n")
legend(x = 20, y = 4, legend = "positive changes",
border = NULL, fill = "blue",
bty = "n",
bg = "n")
text(x = 17.5, y = -0.9, labels ="19.293", col = "black", cex = 0.9)
跟进来自
对于所有数据值,我如何更改为以下代码,以便切换 hmin2 条上编码的颜色。线的左侧应该是蓝色,右侧应该是红色。
FullRange = range(dataframe123, na.rm=TRUE)
BoxRanges = lapply(dataframe123, range, na.rm=TRUE)
plot(NULL, xlim=FullRange, ylim=c(0,3), yaxt="n", xlab="Value", ylab="")
abline(v=19.293)
axis(2, at=(0:2)+0.4, labels=c("hmin1", "hmin2","hmin3"),
lty=0, las=2)
for(i in 1:3) {
polygon(c(BoxRanges[[i]][1], BoxRanges[[i]][1], 19.293, 19.293),
c(i-1,i-0.2,i-0.2,i-1), col="red")
polygon(c(19.293, 19.293, BoxRanges[[i]][2], BoxRanges[[i]][2]),
c(i-1,i-0.2,i-0.2,i-1), col="blue")
}
此外,我如何在绘图中添加图例以指示颜色代表什么?
红色代表参数的负变化,蓝色代表参数的正变化。
卡了几个小时。任何帮助将不胜感激谢谢。
一个选项可以是在循环外为 hmin2
添加 polygon
。为了添加图例,您应该增加绘图区域(xlim
和 ylim
),以便图例可见。
plot(NULL, xlim=c(FullRange[1]-1, FullRange[2] +1), ylim=c(-1,4), yaxt="n", xlab="Value", ylab="")
abline(v=19.293)
axis(2, at=(0:2)+0.4, labels=c("hmin1", "hmin2","hmin3"),
lty=0, las=2)
for(i in c(1,3)) {
polygon(c(BoxRanges[[i]][1], BoxRanges[[i]][1], 19.293, 19.293),
c(i-1,i-0.2,i-0.2,i-1), col="red")
polygon(c(19.293, 19.293, BoxRanges[[i]][2], BoxRanges[[i]][2]),
c(i-1,i-0.2,i-0.2,i-1), col="blue")
}
i = 2
polygon(c(BoxRanges[[i]][1], BoxRanges[[i]][1], 19.293, 19.293),
c(i-1,i-0.2,i-0.2,i-1), col="blue")
polygon(c(19.293, 19.293, BoxRanges[[i]][2], BoxRanges[[i]][2]),
c(i-1,i-0.2,i-0.2,i-1), col="red")
legend(x = 20, y = 4.5, legend = "negative changes",
border = NULL, fill = "red",
bty = "n",
bg = "n")
legend(x = 20, y = 4, legend = "positive changes",
border = NULL, fill = "blue",
bty = "n",
bg = "n")
编辑
如果您想为情节添加标题,则必须在 plot
中使用 main
。要为您的行添加标签,您可以使用 text
:
plot(NULL, xlim=c(FullRange[1]-1, FullRange[2] +1), ylim=c(-1,4), yaxt="n", xlab="Value", ylab="", main = "Range of H min values with parameter changes")
abline(v=19.293)
axis(2, at=(0:2)+0.4, labels=c("hmin1", "hmin2","hmin3"),
lty=0, las=2)
for(i in c(1,3)) {
polygon(c(BoxRanges[[i]][1], BoxRanges[[i]][1], 19.293, 19.293),
c(i-1,i-0.2,i-0.2,i-1), col="red")
polygon(c(19.293, 19.293, BoxRanges[[i]][2], BoxRanges[[i]][2]),
c(i-1,i-0.2,i-0.2,i-1), col="blue")
}
i = 2
polygon(c(BoxRanges[[i]][1], BoxRanges[[i]][1], 19.293, 19.293),
c(i-1,i-0.2,i-0.2,i-1), col="blue")
polygon(c(19.293, 19.293, BoxRanges[[i]][2], BoxRanges[[i]][2]),
c(i-1,i-0.2,i-0.2,i-1), col="red")
legend(x = 20, y = 4.5, legend = "negative changes",
border = NULL, fill = "red",
bty = "n",
bg = "n")
legend(x = 20, y = 4, legend = "positive changes",
border = NULL, fill = "blue",
bty = "n",
bg = "n")
text(x = 17.5, y = -0.9, labels ="19.293", col = "black", cex = 0.9)