如何更改x轴上一勾的颜色

时间:2019-05-06 22:40:57

标签: r ggplot2

我在x轴上有多个点,因此我尝试仅绘制每10000个点,而且还添加了一个串联的数字,该数字在我从limit = c(16995937,17326059)开始时没有顺序仅打印第10000个数字。我要添加的数字是17030090,我还要在x轴上以红色显示该数字。

这是我尝试过的:

  breaks = c(seq(16995937, 17326059, by=10000), 17030090)
  label2 = as.character(breaks)

  a <- ifelse(df$variant == 17030090, "red", "black")

  ggplot(df, aes_string(x="variant",y="value")) +
    geom_point(data=subset(df,label==""),size=1.5) +
    geom_point(data=subset(df,label!=""),col="red",size=1.5) +
    geom_text(aes_string(label="label"),hjust=-0.1,vjust=0.5,size=2.5,col="red") +
    #geom_text(aes_string(label="snp"),hjust=-0.1,vjust=0.5,size=2.5,col="red") +
facet_grid(variable ~ .) +
    #annotation_custom(gtext, xmin=17030090, xmax=17030090, ymin=-Inf, ymax=Inf)+
    scale_x_continuous(limits = c(16995937, 17326059), breaks = breaks, labels = label2) +

    theme(axis.text.x = element_text(angle = 90, hjust = 1,colour = a), legend.position="none") + xlab(paste("Variant position")) + ylab("Posterior probability") +
    ggtitle(ttl)

现在红色显示的数字是17165934,我确实希望17030090用红色显示。我得到的图形如下所示:

plot color ![plot_color] [1]

我也不必在x轴上显示17030090,而只能用红色或蓝色表示垂直刻度。

更新

我能够在17030090位置的x轴上添加一个刻度。最好有一个附加注释(类似于下面的波纹管,我在红色框中有数字),在这种情况下,该框是蓝色的,内部有17030090,也许带有箭头。或至少有一个说明该蓝色代表17030090的图例。

这是新代码:

  breaks = c(seq(16995937, 17326059, by=10000), 17030090)
  label2 = as.character(breaks)

  ggplot(df, aes_string(x="variant1",y="value")) +
    geom_point(data=subset(df,label==""),size=1.5) +
    geom_point(data=subset(df,label!=""),col="red",size=1.5) +
    geom_label_repel(aes_string(label="label"),hjust=-0.1,vjust=0.5,size=3.5,col="red") +
    facet_grid(variable ~ .) +
    scale_x_continuous(limits = c(16995937, 17326059), breaks = breaks, labels = label2) +
    annotation_custom(segmentsGrob(gp = gpar(col = "blue", lwd = 3)), xmin=17030090, xmax=17030090,ymin=-0.01, ymax=0.05) +
    theme(axis.text.x = element_text(angle = 90, hjust = 1), legend.position="none") + xlab(paste("Variant position")) + ylab("Posterior probability") +
    ggtitle(ttl)

plot color2 ![plot_color2] [1]

0 个答案:

没有答案