如何在R中使用特定于类别的彩色文本标签制作散点图?

时间:2013-04-17 04:00:01

标签: r colors plot scatter-plot

我对R和绘图仍然很陌生。我有几个二维矩阵是

的变体
matrix <- matrix(c(0,1,2,3,4,4,3,2,1,0), 5, 2)

它们都与具有类别标签的两列的单个数据框相关联,该列存储在

中的其他位置
df <- data.frame(c("Class1","Class2","Class3","Class4","Class5"), c("A","B","C","B","A"))

我想要做的是使用matrix的第一列中的点标签制作df的散点图,并在第二列中使用颜色编码为类别标签。例如,我需要指定A=redB=blue,然后散点图应该以红色显示与Class1Class5相关联的点,Class2和{{1蓝色,等等。我可以使用与Class列关联的文本标签来绘制Class4,但无法弄清楚颜色操作。如果您能提供帮助,请提前致谢!

2 个答案:

答案 0 :(得分:4)

A="red"; B="blue"
text( x= matrix[,1], y= matrix[,2], labels=df[,1], 
         col=c(A, B, "black")[ as.numeric(df[,2]) ])

基本做法是构建一个颜色向量,然后通过“[”。

运行一个选择向量

答案 1 :(得分:0)

这可以使用ggplot2(您首先必须安装)轻松完成。首先将它们全部放入一个大数据框中,同时给它们一些有用的名称:

colnames(matrix) = c("x", "y")
colnames(df) = c("Class", "Category")
d = cbind(matrix, df)

然后使用ggplot,在xycol(用于颜色)和{{提供您感兴趣的新数据框的列中1}}个地方,以及label表示您想要制作带有文字的情节:

geom_text()

enter image description here