我正在尝试在R中创建一个条形图,该条形图将保持我的数据顺序,并以另一种颜色为数据着色。 我的数据如下:
row.name BMP2 type
qaz 4 gf
zaq 3 gf
xsw 5 ds
数据按“类型”列排序。
下面是我得到的情节。我已指出要着色的部分:
我的代码:
barplot(height = h$BMP2,
las=3,
space=1,
main = chosen_gene
)
*将感谢使用ggplot2的解决方案
答案 0 :(得分:1)
问题似乎出在酒吧上。底数为R barplot
时,条形的边框为黑色,使颜色不可见。使用ggplot2
也会产生类似的效果。
因此,我将首先创建一个更大的数据集。
h <- read.table(text = "
row.name BMP2 type
qaz 4 gf
zaq 3 gf
xsw 5 ds
", header = TRUE)
h <- do.call(rbind, lapply(1:(700/3), function(i) h[sample(nrow(h)), ]))
h <- h[order(h$type), ]
h$row.name <- paste0(h$row.name, seq_along(h$row.name))
h$BMP2 <- sample(20, nrow(h), TRUE)
dim(h)
#[1] 699 3
现在绘制图表。
根据type
组的长度定义颜色向量。然后使用该向量为条形分配颜色。
l <- lengths(split(h$type, h$type))
col <- rep(seq_along(l), l)
barplot(height = h$BMP2,
las = 3,
space = 1,
main = "chosen_gene",
col = col,
border = NA
)
对于ggplot
图,首先对列{ type
类的{1}},以便按组绘制条形图。
"factor"
答案 1 :(得分:0)