如何只为R中直方图的一个标签着色?

时间:2014-10-08 04:50:06

标签: r histogram labels

我有一个这样的数据框:

CellLines   ZEB1
600MPE  2.8186
AU565   2.783
BT20    2.7817
BT474   2.6433
BT483   2.4994
BT549   3.035
CAMA1   2.718
DU4475  2.8005
HBL100  2.6745
HCC38   3.2884
HCC70   2.597
HCC202  2.8557
HCC1007 2.7794
HCC1008 2.4513
HCC1143 2.8159
HCC1187 2.6372
HCC1428 2.7327
HCC1500 2.7564
HCC1569 2.8093

我可以绘制一个直方图并为其添加标签(感谢这里的人们帮助解决这个问题" Make a histogram clearer by assigning names to different segments of each bar in R")。我想知道是否有办法只对直方图上的一个标签着色,例如只有颜色" HCC1008"。 到目前为止的代码是(感谢@Carlos Cinelli):

Heiser_hist <- hist(Heiser$ZEB1[1:19], breaks=50, col="grey")
Heiser$cut <- cut(Heiser$ZEB1, breaks=Heiser_hist$breaks)
library(dplyr)
Heiser <- Heiser %>% group_by(cut) %>% mutate(pos = seq(from=1, to=2, length.out=length(ZEB1)))
with(Heiser, text(ZEB1, pos, labels=CellLines, srt=45, cex=0.9))

应该提到我检查了这些页面,但似乎没有人解决这个问题: Intelligent point label placement in RLabeling not all points on the plot

提前感谢您对此的任何帮助: - )

1 个答案:

答案 0 :(得分:3)

一种简单的方法是创建一个新的向量。类似的东西:

with(Heiser, {
  color_HCC1008 <- ifelse(Heiser$CellLines == "HCC1008", col1, col2)
  text(ZEB1, pos, labels = CellLines, srt = 45, cex = 0.9, col = color_HCC1008)
})

其中col1col2是您的不同颜色。你在这里所做的只是说&#34;我希望这个索引有这种颜色,而其他索引要有这种颜色。&#34;这是R编程的一种非常通用的方法,在我看来,这是完成任何事情最简单(但并不总是最好/最快)的方法。