我对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=red
,B=blue
,然后散点图应该以红色显示与Class1
和Class5
相关联的点,Class2
和{{1蓝色,等等。我可以使用与Class列关联的文本标签来绘制Class4
,但无法弄清楚颜色操作。如果您能提供帮助,请提前致谢!
答案 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
,在x
,y
,col
(用于颜色)和{{提供您感兴趣的新数据框的列中1}}个地方,以及label
表示您想要制作带有文字的情节:
geom_text()