r图中的控制颜色
Control color in r plot
nestednodf 的输出是包 vegan 的一个函数,可以很容易地绘制出来。我想用不同的颜色突出显示选定的行,但我不知道如何在单个图中指定它。假设我想要第 1,3 和 5 行为蓝色,第 2 和 4 行为红色(默认颜色)。此代码允许将第二个图与蓝色的第 1、3、5 行重叠,但不会在第一个图中插入选定的行:
library(vegan)
df=data.frame(a=c(0,1,1,1,0), b=c(1,0,0,0,1), c=c(1,1,1,1,0), d=c(1,0,1,0,1), e=c(0,0,0,1,1))
plot(nestednodf(df))
plot(nestednodf(df[c(1,3,5),]), col='blue', add=T)
有什么方法可以控制行的颜色吗?像这样:
plot(nestednodf(df), row.col=c('blue', '', 'blue', '', 'blue'))
输入vegan:::plot.nestednodf
即可查看函数源码。真的没有机会调整两个行颜色。但是你可以看到这个函数非常简单,所以你可以编写自己的版本
myplot <- function (x, col = "red", names = FALSE, ...)
{
z <- x$comm
z <- t(z[nrow(z):1, ])
if (length(col) == 1)
col <- c(NA, col)
else if ( length(col)>1) {
z <- z*((col(z)-1)%%2+1)
}
image(z, axes = FALSE, col = col, ...)
box()
if (length(names) == 1)
names <- rep(names, 2)
if (names[1]) {
axis(2, at = seq(1, 0, len = ncol(z)), labels = rev(colnames(z)),
las = 2, ...)
}
if (names[2]) {
axis(3, at = seq(0, 1, len = nrow(z)), labels = rownames(z),
las = 2, ...)
}
}
这里我只是添加了一行来更改颜色以在指定的值之间交替。比较
plot(nestednodf(df))
myplot(nestednodf(df), col=c(NA,'red','blue'))
请注意,我传递了三种颜色,因为第一种用于矩阵中的“0”值
nestednodf 的输出是包 vegan 的一个函数,可以很容易地绘制出来。我想用不同的颜色突出显示选定的行,但我不知道如何在单个图中指定它。假设我想要第 1,3 和 5 行为蓝色,第 2 和 4 行为红色(默认颜色)。此代码允许将第二个图与蓝色的第 1、3、5 行重叠,但不会在第一个图中插入选定的行:
library(vegan)
df=data.frame(a=c(0,1,1,1,0), b=c(1,0,0,0,1), c=c(1,1,1,1,0), d=c(1,0,1,0,1), e=c(0,0,0,1,1))
plot(nestednodf(df))
plot(nestednodf(df[c(1,3,5),]), col='blue', add=T)
有什么方法可以控制行的颜色吗?像这样:
plot(nestednodf(df), row.col=c('blue', '', 'blue', '', 'blue'))
输入vegan:::plot.nestednodf
即可查看函数源码。真的没有机会调整两个行颜色。但是你可以看到这个函数非常简单,所以你可以编写自己的版本
myplot <- function (x, col = "red", names = FALSE, ...)
{
z <- x$comm
z <- t(z[nrow(z):1, ])
if (length(col) == 1)
col <- c(NA, col)
else if ( length(col)>1) {
z <- z*((col(z)-1)%%2+1)
}
image(z, axes = FALSE, col = col, ...)
box()
if (length(names) == 1)
names <- rep(names, 2)
if (names[1]) {
axis(2, at = seq(1, 0, len = ncol(z)), labels = rev(colnames(z)),
las = 2, ...)
}
if (names[2]) {
axis(3, at = seq(0, 1, len = nrow(z)), labels = rownames(z),
las = 2, ...)
}
}
这里我只是添加了一行来更改颜色以在指定的值之间交替。比较
plot(nestednodf(df))
myplot(nestednodf(df), col=c(NA,'red','blue'))
请注意,我传递了三种颜色,因为第一种用于矩阵中的“0”值