使用标题等在不同的线条图案中绘制相同图形上的三个密度

时间:2013-06-04 01:08:27

标签: r kernel-density density-plot

我对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))

我从哪里开始?

3 个答案:

答案 0 :(得分:0)

Appendix A of 'An Introduction to R'有一个很好的演练教程,你可以在十分钟内完成;它教授线型等等

在此之后,密谋的密谋在这里也被解释了几十次;在上面的搜索框中搜索例如'[r] density'。还有R Graph Gallery(可能现在下来)等等。

我经常推荐的一本很好的,免费的指南是John Verzani的simpleR,它强调了很多图表,并会教会你在这里需要什么。

答案 1 :(得分: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())

答案 2 :(得分: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)

希望这有帮助。