0

大家好,

我无法弄清楚如何为我的图表指定“填充”颜色(如下)。

当我指定“填充”变量时,我的数据的不同子集具有不同的级别,例如,一个子集有 2 个级别,另外两个有三个级别。当我告诉我的情节使用变量来“填充”我的图表颜色时,我的图表之间会出现不同的颜色。我试图指定我的“填充”变量级别应该使用哪些颜色,但没有奏效。我尝试使用 scale_colour_manual() 的多次重新排列,以及我在 SO 周围发现的其他一些东西,但无法弄清楚。

在尝试指定我的颜色时,有人可以指出我哪里出错了。下面是我正在使用的代码的表示和我的问题的图像。

# Code to post on Stack overflow to see where I am going wrong with scale_colour_manual()
data <- data.frame('id' = c('a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c'), 
               'treatment' = c('1', '1', '1','1', '1', '1','1', '1', '1', '2', '2', '2','2', '2', '2','2', '2', '2', '3', '3', '3', '3', '3', '3', '3', '3', '3'), 
               'loci' = c('1', '1', '1', '2', '2', '2', '3', '3', '3', '1', '1', '1', '2', '2', '2', '3', '3', '3', '1', '1', '1', '2', '2', '2', '3', '3', '3'), 
               'assign' = c('0', '0', '0', '1', '2', '1', '1', '1', '1', '0', '0', '0', '1', '2', '1', '1', '1', '2', '0', '0', '0', '1', '2', '2', '1', '1', '1'))

a <- data[which(data$id == 'a'),]
b <- data[which(data$id == 'b'),]
c <- data[which(data$id == 'c'),]

aheat <- ggplot(a, aes(as.factor(loci), as.factor(treatment), fill = factor(assign))) + 
  geom_tile(colour = 'white') +
  scale_x_discrete(expand = c(0,0)) + 
  scale_y_discrete(expand = c(0,0)) +
  xlab("Number of Loci") + 
  ylab("Treatment") +
  ggtitle("A Plot") +
  theme(axis.ticks = element_blank(), axis.text.x = element_text(angle = 320, size = 6, vjust = 0.5), axis.text.y = element_text(size = 8)) +
  scale_colour_manual(breaks = a$assign, values = c('0' = 'blue', '1' = 'green'))
aheat

bheat <- ggplot(b, aes(as.factor(loci), as.factor(treatment), fill = factor(assign))) + 
  geom_tile(colour = 'white') +
  scale_x_discrete(expand = c(0,0)) + 
  scale_y_discrete(expand = c(0,0)) +
  xlab("Number of Loci") + 
  ylab("Treatment") +
  ggtitle("B Plot") +
  theme(axis.ticks = element_blank(), axis.text.x = element_text(angle = 320, size = 6, vjust = 0.5), axis.text.y = element_text(size = 8)) +
  scale_colour_manual(breaks = b$assign, values = c('0' = 'blue', '1' = 'green', '2' = 'red'))
bheat

cheat <- ggplot(c, aes(as.factor(loci), as.factor(treatment), fill = factor(assign))) + 
  geom_tile(colour = 'white') +
  scale_x_discrete(expand = c(0,0)) + 
  scale_y_discrete(expand = c(0,0)) +
  xlab("Number of Loci") + 
  ylab("Treatment") +
  ggtitle("C Plot") +
  theme(axis.ticks = element_blank(), axis.text.x = element_text(angle = 320, size = 6, vjust = 0.5), axis.text.y = element_text(size = 8)) +
  scale_colour_manual(breaks = c$assign, values = c('0' = 'blue', '1' = 'green', '2' = 'red'))
cheat

在此处输入图像描述

感谢所有的帮助!

问候,亚当

4

0 回答 0