0

我正在使用 ggplot2 创建一个点图。我的数据基本上是x_axis、y_axis和z_axis三列的形式,x_axis和y_axis一起代表pair,z_axis代表pair count。

所以我正在绘制 x_axis 与 y_axis 并使用 z_axis 为点着色。在某些情况下,我想跳过绘制特定计数,例如:计数 1 出现多次,有时我想跳过绘制 1,但图例应显示 1。以下是我的代码:

    > new<-read.table("PB1_combo.txt", header=T, sep="\t")
    > bp <-ggplot(data=new, aes(x_axis,y_axis, colour=factor(z_axis)), size=z_axis) +                                 
    geom_point(size=5)
    > bp + ggtitle("PB1-PB1")
    > last_plot()+ scale_colour_discrete(name="Counts")
    > last_plot()+ theme_bw()


  Sample data from PB1_combo.txt
  x_axis  y_axis  z_axis
    14      576     2
    394     652     2
    759     762     2
    473     762     2
    65      763     3
    114     390     2
    762     763     4
    758     762     2
    388     616     2
    217     750     2
    65      762     2
    473     763     2
    743     759     2
    65      213     2
    743     762     2
4

1 回答 1

1

首先,您应该创建一个 factor z_axis。这样,即使不是所有可能的值都存在,R 也会知道它们。

new$Count <- factor(new$z_axis)

(你真的应该选择一个名字,而不是new顺便说一句。)

然后,您可以只对数据进行子集化,并通过drop=FALSE在调用中显示图例中缺少的级别scale_color_discrete

ggplot(data=new[new$Count!="2", ], aes(x_axis,y_axis, colour=Count), size=z_axis) +                                 
  geom_point(size=5) +
  ggtitle("PB1-PB1") +
  scale_colour_discrete(name="Counts", drop=FALSE) +
  theme_bw()

在此处输入图像描述

看到这个问题,其实。

于 2013-08-16T20:13:29.687 回答