ggplot2

时间:2017-05-12 00:18:23

标签: r ggplot2

我已经以这种形式导入数据:

Sample1 Sample2 Identity
1    2    chr11-50-T
3    4    chr11-200-A
v <- read.table("myfile", header = TRUE)

我有一个看起来像这样的矢量:

x <- c(50,100)

如果没有其他一些美学内容,我正在绘制第1列与第2列标记为第3列的内容。

p <- ggplot(v, aes(x=sample1, y=sample2, alpha=0.5, label=identity)) +
geom_point() +
geom_text_repel(aes(label=ifelse(sample2>0.007 |sample1>0.007 ,as.character(identity),''))) + 

我想以某种方式指出那些包含ID的数字的点,在向量x中找到。我认为这可以用颜色来完成,但只要两种类型的点之间存在差异,这对我来说并不重要。

因此,例如,如果x中包含数字的点为红色,则第一个点为红色,因为ID中有50而第二个点不是,因为200中的x不是值{。}}。

2 个答案:

答案 0 :(得分:1)

您可以将TRUE/FALSE值添加为列,并将其用作颜色。我必须删除label = ...个,因为aes中的ggplot2不是aes(alpha = 0.5)。此外,一切都是透明的,因为您使用library(ggrepel) library(ggplot2) vafs$col <- grepl(paste0(x,collapse = "|"), vafs$Identity) p <- ggplot(vafs, aes(x=Sample1, y=Sample2, alpha=0.5, color = col)) + geom_point() + geom_text_repel(aes(label=ifelse(Sample2>0.007 |Sample1>0.007 ,as.character(Identity),'')))

{{1}}

enter image description here

答案 1 :(得分:1)

我提出了以下解决方案:

double operator[](int j)
{
    auto dataFunc = std::bind(data, lp, _1, _2);
    return dataFunc(i, j);
}