如何为 barplot3d 函数中的行分配颜色
How to assign colors to rows in barplot3d function
我使用 barplot3d::barplot3d
来可视化我的数据。我一直在尝试为每一行分配一种颜色,而不是使用 topcolors = rainbow(100)
,但我无法弄清楚。我感谢任何帮助、建议或参考。
这是我的代码:
barplot3d(rows = 4,
cols = 29,
z = ECdata$EC50,
scalexy = 0.5,
alpha = 0.2,
theta = 50,
phi = 50,
topcolors = rainbow(100),
xlabels = 1:29,
ylabels = c("Adepidyn", "Boscolid", "Fluopyram", "Solateno"),
xsub = "Isolate",
ysub = "Fungicide",
zsub = "EC50")
回答
只需将每一列重复 cols
次,其中 cols
是列数:
rows <- 4
cols <- 5
my_colors <- rep(rainbow(rows), each = cols)
barplot3d(rows = rows,
cols = cols,
z = runif(rows * cols),
topcolors = my_colors)
理由
使用 rainbow(100)
,您将获得 100 种颜色的颜色代码。我们希望每一行的颜色代码都相同。因此,每个颜色代码的重复次数应与我们的列数一样多。
假设我们需要 5 列。让我们将其存储为:
cols <- 5
现在,我们可以将每个颜色代码重复 5 次:
my_colors <- rep(rainbow(100), each = cols))
head(my_colors, 20)
# [1] "#FF0000FF" "#FF0000FF" "#FF0000FF" "#FF0000FF" "#FF0000FF" "#80FF00FF" "#80FF00FF" "#80FF00FF" "#80FF00FF" "#80FF00FF" "#00FFFFFF" "#00FFFFFF"
# [13] "#00FFFFFF" "#00FFFFFF" "#00FFFFFF" "#8000FFFF" "#8000FFFF" "#8000FFFF" "#8000FFFF" "#8000FFFF"
但是,如果我们只有 4 行,barplot3d
中的所有颜色都将偏红,因为我们只得到 100 种颜色中的前 4 种颜色:
因此,我们可以用行数调用 rainbow
,以获得更多不同的颜色:
my_colors <- rep(rainbow(rows), each = cols)
我使用 barplot3d::barplot3d
来可视化我的数据。我一直在尝试为每一行分配一种颜色,而不是使用 topcolors = rainbow(100)
,但我无法弄清楚。我感谢任何帮助、建议或参考。
这是我的代码:
barplot3d(rows = 4,
cols = 29,
z = ECdata$EC50,
scalexy = 0.5,
alpha = 0.2,
theta = 50,
phi = 50,
topcolors = rainbow(100),
xlabels = 1:29,
ylabels = c("Adepidyn", "Boscolid", "Fluopyram", "Solateno"),
xsub = "Isolate",
ysub = "Fungicide",
zsub = "EC50")
回答
只需将每一列重复 cols
次,其中 cols
是列数:
rows <- 4
cols <- 5
my_colors <- rep(rainbow(rows), each = cols)
barplot3d(rows = rows,
cols = cols,
z = runif(rows * cols),
topcolors = my_colors)
理由
使用 rainbow(100)
,您将获得 100 种颜色的颜色代码。我们希望每一行的颜色代码都相同。因此,每个颜色代码的重复次数应与我们的列数一样多。
假设我们需要 5 列。让我们将其存储为:
cols <- 5
现在,我们可以将每个颜色代码重复 5 次:
my_colors <- rep(rainbow(100), each = cols))
head(my_colors, 20)
# [1] "#FF0000FF" "#FF0000FF" "#FF0000FF" "#FF0000FF" "#FF0000FF" "#80FF00FF" "#80FF00FF" "#80FF00FF" "#80FF00FF" "#80FF00FF" "#00FFFFFF" "#00FFFFFF"
# [13] "#00FFFFFF" "#00FFFFFF" "#00FFFFFF" "#8000FFFF" "#8000FFFF" "#8000FFFF" "#8000FFFF" "#8000FFFF"
但是,如果我们只有 4 行,barplot3d
中的所有颜色都将偏红,因为我们只得到 100 种颜色中的前 4 种颜色:
因此,我们可以用行数调用 rainbow
,以获得更多不同的颜色:
my_colors <- rep(rainbow(rows), each = cols)