我有一个像这样的矩阵
df
v1 v2 v3
1 4 7
3 1 2
1 6 5
当我做愚蠢的代码时
barplot(df , beside = F , hor = T , col= c("darkred" , "darkblue" , "darkgreen"))
我想改变每个酒吧的颜色......任何颜色...... 例如,v1条将是例如深色,深蓝色但是黄色而不是深绿色。我想更改其他不同颜色的v2条:黑色,黑色和粉红色,而不是"黑暗" ," darkblue" ," darkgreen" ...对于v3栏,同样的程序,选择任何其他颜色。我试着在col参数中放入一个矩阵,但它不起作用。
解决这个问题的一些方法?
答案 0 :(得分:2)
这是ggplot2中的解决方案:
首先,重塑数据。
library(reshape2)
m_df <- melt(df)
然后创建一个(类似的)情节:
library(ggplot2)
#add color (quite random for now)
m_df$col <- c("darkred" , "darkblue" , "yellow","green","red","orange","pink","blue","black")
p1 <- ggplot(m_df, aes(x=Var2,y=value,fill=col)) +
geom_bar(stat="identity",position="stack") +
scale_fill_identity() + coord_flip() +
theme_classic()
p1