R 具有一致颜色方案的并排条形图

R 具有一致颜色方案的并排条形图,r,ggplot2,R,Ggplot2,我一直在使用来自共享一个公共变量的不同数据帧的数据,在多个条形图中使用一致性。这种方法是基于对问题的回答。在每一种情况下,我都在看一个变量 我现在想做的是在同一个图上看两个变量,保持配色方案的一致性。除了A的两个条应该是相同的颜色(调色板中的第一个)之外,B的两个条应该是相同的颜色(调色板中的第二个)等等,它应该看起来类似于以下内容。 样本数据: mydata <- data.frame( "Channel" = LETTERS[1:11], "V1

我一直在使用来自共享一个公共变量的不同数据帧的数据,在多个条形图中使用一致性。这种方法是基于对问题的回答。在每一种情况下,我都在看一个变量

我现在想做的是在同一个图上看两个变量,保持配色方案的一致性。除了
A
的两个条应该是相同的颜色(调色板中的第一个)之外,
B
的两个条应该是相同的颜色(调色板中的第二个)等等,它应该看起来类似于以下内容。

样本数据:

mydata <- data.frame( "Channel" = LETTERS[1:11], 
                  "V1" = seq(1100, 100, -100), 
                  "V2"= seq(110, 10, -10) )
我一直试图在ggplot中这样做(这是我的偏好),但没有成功。我使用了包
重塑2
熔化数据,然后使用
填充,但这只得到两种颜色。我还尝试过以各种方式使用
position='dodge'
,但没有成功。对于第二个变量,我可以得到类似的最终结果,将条形图和折线图结合起来,但我更喜欢双条形图


我也更愿意坚持ggplot,但任何解决方案都将不胜感激

我用一点技巧解决了它。我将色彩快感设置为
频道
,将
系列
设置为
变量
。第二种方法防止在使用
position=“dodge”
时,具有相同
频道的两个
彼此重叠打印

库(ggplot2)
图书馆(E2)
图书馆(dplyr)

mydata您可以通过指定每个相邻条重复的颜色来使用基本图形

barplot(t(mydata[,2:3]), beside=T, col=rep(brewer.pal(11, "RdGy"), each=2), names.arg=LETTERS[1:11])

示例代码给出错误
“height”必须是向量或矩阵
@dww抱歉,感谢您的捕获。我被困在
ggplot2
模式中,没有将参数转换为矩阵。太棒了,谢谢!正是我需要的。而
ggplot
是我所希望的方法。谢谢!有多个选项总是好的,这段代码更简单。
library(ggplot2)
library(reshape2)
library(dplyr)

mydata <- data.frame( "Channel" = LETTERS[1:11], 
                      "V1" = seq(1100, 100, -100), 
                      "V2"= seq(110, 10, -10) )

df <- mydata %>% 
      melt(id = c("Channel"))

ggplot(df, aes(x = Channel, y = value, fill = Channel, family = variable)) + 
  geom_bar(stat = "identity", position = "dodge", color = "black") + 
  scale_fill_brewer(palette = "RdGy")
barplot(t(mydata[,2:3]), beside=T, col=rep(brewer.pal(11, "RdGy"), each=2), names.arg=LETTERS[1:11])