2016-05-03 20 views
0

ドットプロットの作成に問題があります。私は4列6行のデータフレーム "distribution_tab"を持っています。二つの第一列は量的変数であり、他の2つはカテゴリ値である:2つのカテゴリ変数と2つの定量変数を持つドットプロット

 read.length  percentage.GC strand  organism 

1   203   63.0  forward  bacteria 
2   250   33.0  forward  plant 
3   205   72.0  reverse  bacteria 
4   240   36.0  reverse  plant 
5   210   33.5  forward  plant 
6   230   63.5  reverse  bacteria 

Iはyのx軸とpercentage.GCでread.lengthと、このデータフレームのうち、一つだけドットプロットを作成したいです軸。ストランド「前方」はドットで表され、ストランドは三角形(または他の2つの異なる記号)で反転されなければならない。生物 "バクテリア"はピンク色で表現され、生物は "植物"が緑色で表現されなければならない。

たとえば、あるデータが「前方と細菌」の場合は、ドットプロット内にピンクのドットで表されなければならず、「反転して植え付ける」場合は緑色の三角形でなければなりません。

私は実際にこれを行う方法(または可能な場合)がわかりません。今のところ私は2つの量的変数とドットプロットを作っています

plot(distribution_tab$read_length ~ distribution_tab$percentage.GC) 

私は彼らの生物とストランドの値に応じて、プロットでそれらを区別するためにどのようには考えています。

答えて

2

使用ggplot:

library(ggplot2) 

df$col <- ifelse(df$organism == "bacteria", "pink", "green") 
ggplot(df, aes(read.length, percentage.GC, shape = strand, col = col)) + 
    geom_point(size = 4) + 
    scale_color_identity() 

enter image description here データ:

#dummy data 
df <- read.table(text="  read.length  percentage.GC strand  organism 
       1   203   63.0  forward  bacteria 
       2   250   33.0  forward  plant 
       3   205   72.0  reverse  bacteria 
       4   240   36.0  reverse  plant 
       5   210   33.5  forward  plant 
       6   230   63.5  reverse  bacteria ", header = TRUE) 
3
distribution_tab <- read.table(header = TRUE, text = "read.length  percentage.GC strand  organism 
1   203   63.0  forward  bacteria 
2   250   33.0  forward  plant 
3   205   72.0  reverse  bacteria 
4   240   36.0  reverse  plant 
5   210   33.5  forward  plant 
6   230   63.5  reverse  bacteria ") 


plot(percentage.GC ~ read.length, data = distribution_tab, 
    pch = c(17,19)[(strand %in% 'forward') + 1L], 
    col = c('pink', 'green')[(organism %in% 'plant') + 1L]) 

enter image description here

又はifelseを用いるが、上記の方法は、より柔軟である

plot(percentage.GC ~ read.length, data = distribution_tab, 
    pch = ifelse(strand %in% 'forward', 19, 17), 
    col = ifelse(organism %in% 'plant', 'green', 'pink')) 
+0

'私は疑問であり、OPコードを使用していますのx axis' zx8754 @ – zx8754

+1

でread.lengthは – rawr

+0

私は誰もが本当に彼らが人生で欲しいものを知っているんzx8754 @ OP :) – zx8754

関連する問題