繁体   English   中英

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

[英]How to make a scatterplot in R with category-specific colored text labels?

我对R和绘图仍然很陌生。 我有几个2D变量的二维矩阵

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"))

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

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

基本的做法是建立一个颜色矢量,然后通过“[”运行一个选择向量。

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

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

然后使用ggplot ,在xycol (用于颜色)和label位置提供您感兴趣的新数据框的列,以及geom_text()以指示您想要使用文本制作绘图:

library(ggplot2)
g = ggplot(d, aes(x=x, y=y, col=Category, label=Class)) + geom_text()
print(g)

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM