2013-08-16 3 views
0

Я использую ggplot2 для создания точечного графика. Мои данные в основном состоят из трех столбцов: x_axis, y_axis и z_axis, x_axis и y_axis вместе представляют пару, а z_axis - количество пар.ggplot2 избегать точек из графика

Итак, я рисую x_axis vs 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 
+0

Просьба предоставить образцы данных, которые иллюстрируют вашу проблему. У нас нет 'PB1_combo.txt'. Лучший способ сделать это - либо имитировать что-то, либо опубликовать код, либо отправить сообщение 'dput (head (new))'. Оба метода описаны здесь (http://stackoverflow.com/q/5963269/903061). – Gregor

+0

Если вы не знаете, как написать вопрос с данными, прочитайте [this] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – SlowLearner

ответ

1

Во-первых, вы должны создать коэффициент 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() 

enter image description here

this question См, на самом деле.

+0

Пейтон: Идеальное решение. – Mdhale

Смежные вопросы