2013-06-04 55 views
0

我對R非常非常新,所以請原諒我的問題的基本性質。總之,我做了很多谷歌搜索試圖回答這個問題,但是我發現即使是基本的指南,以及論壇上的簡單討論,都會比我擁有更多的先前知識,特別是在概述所有編碼術語是什麼,改變它們意味着什麼。在標題等不同線條圖中繪製三個密度圖

總之,我有一個標籤格式化表格,其中包含三列數據,我希望在單個圖表上繪製密度圖。我希望線條可以是不同的圖案(虛線,虛線等等,因爲任何東西都可以很容易地將它們區分開來,因爲我的主管是色盲,所以我不能使用顏色)。

我有一些代碼讀取數據並生成可訪問我感興趣的列:

mydata <- read.table("c:/Users/Demon/Desktop/Thesis/Fst_all_genome.txt", header=TRUE, 
sep="\t") 

fstdata <- data.frame(Fst_ceu_mkk =rnorm(10), 
         Fst_ceu_yri =rnorm(10), 
         Fst_mkk_yri =rnorm(10)) 

我在哪裏何去何從?

回答

0

Appendix A of 'An Introduction to R'有一個很好的演練教程,你可以在10分鐘內完成;除此之外,它教導線路類型等

之後,繪製密度也在這裏解釋了幾十次;在上面的搜索框中搜索例如'[r]密度'。還有R Graph Gallery(可能在現在),等等。

我經常推薦的一個很好的免費指南是John Verzani的simpleR,它強調圖形很多,並會教你在這裏需要什麼。

+0

謝謝德克。我會看看。壓力大的東西!我的預算非常緊張(我的論文只給了6個月),R的學習曲線非常陡峭。希望有人會爲它製作更加用戶友好的GUI。 – user2439887

+0

@ user2439887還有一個以ggplot爲中心的[cookbook for R](http://www.cookbook-r.com/Graphs/) - 你也可以得到[colorblind-safe color palettes](http:// www .mollietaylor.com/2012/10/color-blindness-and-palette-choice.html),它們可以在'RColorBrewer'軟件包中找到。 – mnel

+0

我不想在這方面聽起來很懶惰,但儘管simpleR指南看起來像一個相當全面的工具,但它在模板方面確實有點過分。理想情況下,我需要在第二天左右這些情節,所以我真的只需要一個快速和骯髒的解決方案,但用足夠簡單的條款解釋,我可以應用它,並知道哪些變量要改變或獨自離開。如果任何人都可以提供一個模板,我可以將數據向量轉換出來,只需簡單地修改一下如何改變情節的視覺方面,我會很感激。 – user2439887

0

兩種選擇讓你探索使用高級圖形。

# dummy data 
d = data.frame(x = rnorm(10), y = rnorm(10), z = rnorm(10)) 

首先,您需要從廣泛的重塑數據長格式,

require(reshape2) 
m = melt(d) 

GGPLOT2圖形

require(ggplot2) 
ggplot(data = m, mapping = aes(x = value, linetype = variable)) + 
     geom_line(stat = "density") 

點陣圖形

使用相同的melt()ed個數據,

require(lattice) 
densityplot(~ value, data = m, group = variable, 
      auto.key = TRUE, par.settings = col.whitebg()) 
0

如果你需要的東西很簡單,你可以做簡單:

plot(density(mydata$col_1)) 
lines(density(mydata$col_2), lty = 2) 
lines(density(mydata$col_2), lty = 3) 

如果第二和第三密度曲線遠離第一,你需要定義XY限制的繪圖區域明確:

dens1 <- density(mydata$col_1) 
dens2 <- density(mydata$col_2) 
dens3 <- density(mydata$col_3) 

plot(dens1, xlim = range(dens1$x, dens2$x, dens3$x), 
    ylim = range(dens1$y, dens2$y, dens3$y)) 
lines(density(mydata$col_2), lty = 2) 
lines(density(mydata$col_2), lty = 3) 

希望這有助於。