根据向量格式化数据点

时间:2014-03-19 13:34:19

标签: r plot

我试图绘制VALUE列,然后用LABEL列标记

X   VALUE   LABEL   COLOR
1   78  T041N2  3
2   77  T018N3  2
3   97  T014N3  1
4   0   T149N4  1
5   62  T043N1  3
6   66  T018N3  3
7   56  T145N4  3
8   63  T019N4  1
9   82  T039N0  1
10  75  T018N3  1
11  76  T018N3  1
12  63  T043N1  2
13  0   T149N4  2
14  73  T019N4  2
15  77  T019N4  3
16  100 T149N4  3
17  92  T043N1  3

我读取数据然后绘制VALUE数据,然后使用以下代码将LABEL标签与text命令放在一起并且工作正常

my_data <- read.table("mydata.dat", header=T, sep="\t")
plot(my_data$VALUE, type="o")
text(my_data$VALUE, y = NULL, labels = my_data$LABEL, adj = NULL,pos = 3, offset = 0.5, vfont = NULL,cex = 0.5, col = NULL, font = NULL)

但现在我被要求根据COLOR向量绘制每个数据点(现在只是黑色圆圈)(1为红色,2为绿色,3为黄色)。

我如何根据COLOR向量绘制点?

3 个答案:

答案 0 :(得分:0)

首先创建一个包含所需每种颜色文本的列:

color_names <- c("red", "green", "yellow")

my_data$color_name <- color_names[my_data$COLOR]

然后在col电话中添加plot参数:

plot(my_data$VALUE, type="o", col=my_data$color_name)

答案 1 :(得分:0)

要完成上一个答案,您还可以修改&#34;调色板&#34;

palette(c("red", "green", "yellow"))
plot(my_data$VALUE, type="o", col=my_data$COLOR)

HTH

答案 2 :(得分:0)

试试这个:

#dummy data
my_data <- read.table(text="X   VALUE   LABEL   COLOR
1   78  T041N2  3
2   77  T018N3  2
3   97  T014N3  1
4   0   T149N4  1
5   62  T043N1  3
6   66  T018N3  3
7   56  T145N4  3
8   63  T019N4  1
9   82  T039N0  1
10  75  T018N3  1
11  76  T018N3  1
12  63  T043N1  2
13  0   T149N4  2
14  73  T019N4  2
15  77  T019N4  3
16  100 T149N4  3
17  92  T043N1  3", header=TRUE)

mycols<-c("red","green","yellow")

#using base plot
plot(my_data$VALUE, pch=19, bty="n",col=mycols[my_data$COLOR],main="Using base R")
lines(my_data$VALUE, type="b")
text(my_data$VALUE, y = NULL,
     labels = my_data$LABEL,
     adj = NULL, pos = 3,
     offset = 0.5, vfont = NULL,cex = 0.5, col = NULL, font = NULL)

enter image description here