如何从R中的melt绘制颜色贴图

如何从R中的melt绘制颜色贴图,r,colors,R,Colors,我以前在R中映射过颜色。但有些东西没有点击。 理想情况下,我希望将颜色名称映射到变量值student,但我得到了一个长度错误。但是,映射到颜色的学生数量是相等的。此外,我还尝试创建了两个单独的颜色列—作为字符串和id。这些颜色最终会在图例上标记。添加手动缩放颜色选项没有多大作用 以下是数据示例: m3 <- structure(list(student = structure(c(7L, 11L, 9L, 2L, 8L, 4L), .Label = c("a","b", "c", "d",

我以前在R中映射过颜色。但有些东西没有点击。 理想情况下,我希望将颜色名称映射到变量值student,但我得到了一个长度错误。但是,映射到颜色的学生数量是相等的。此外,我还尝试创建了两个单独的颜色列—作为字符串和id。这些颜色最终会在图例上标记。添加手动缩放颜色选项没有多大作用

以下是数据示例:

m3 <- structure(list(student = structure(c(7L, 11L, 9L, 2L, 8L, 4L), .Label = c("a","b", "c", "d", "e", "f", "g","h", "i", "j", "k", "l", "m", "n","o", "p"), class = "factor"), colorz = structure(4:9, .Label = c("#66CC99","#9999CC", "#CC6666", "#FF0000FF", "#FF2000FF", "#FF4000FF","#FF6000FF", "#FF8000FF", "#FF9F00FF", "#FFBF00FF", "#FFDF00FF","#FFFF00FF", "green", "red"), class = "factor"), variable = structure(c(1L,1L, 1L, 1L, 1L, 1L), .Label = c("pre", "c1", "c2","b1", "c3", "c4", "b2", "u1", "u2","u3", "u4", "total"), class = "factor"), value = c(3, 31,49, 88, 31, 40), col = c("#FF0000FF", "#FF2000FF", "#FF4000FF","#FF6000FF", "#FF8000FF", "#FF9F00FF")), .Names = c("student","colorz", "variable", "value", "col"), row.names = c(NA, 6L), class = "data.frame")
然后用以下图形绘制:ggplotm3,aesx=变量,y=值,group=学生,线型=学生+几何图形线条尺寸=.75+几何图形点尺寸=2+xlabtest+ylabpastescore+几何图形点截距=70,线型=虚线,尺寸=3+themeaxis.text.x=元素文字角度=45,hjust=1+比例颜色\标识

该示例比实际数据小得多。
理想情况下,我希望能够使用如下内容:color.names首先像这样为学生分配颜色,aescolor=student,然后使用scale\u color\u手册。由于您已经命名了颜色向量,ggplot将根据名称处理匹配,除非调色板中没有名称,否则该值将被删除而不打印:

ggplot(m3, aes(x=variable, y=value, group=student, linetype=student, color = student)) +
    geom_line(size=.75) + geom_point(size=2) +  xlab("test") +
    ylab(paste("score")) + geom_hline(yintercept=70, linetype="dashed", size=3) +
    theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
    scale_color_manual(values = color.names)
现在看起来是这样的: