【问题标题】:Lasagna plots in RR中的千层面图
【发布时间】:2013-07-23 20:21:09
【问题描述】:

我在R 中阅读了有关Lasagna plots 的信息。在链接中论文的附录中,作者有很多代码来实现这些图。但这是一个 pdf,我无法复制到 RStudio(至少,我还没弄清楚如何)。有没有人把这些做成一个包,或者有没有人有更可用格式的代码?

【问题讨论】:

  • 这些看起来很好吃,+1 ...来自浏览图。 1,我想heatmap() 的一些有针对性的使用可能会让你朝着某个方向前进......
  • 来自文章:“烤宽面条图:意大利面条图的俏皮替代品”:-)
  • @Joran 我做到了,我还没有收到回复。我想也许其他人已经这样做了,所以我想我也会在这里问。 (另外,我传播了一个很酷的情节)。
  • 取决于 pdf 的类型:如果您选择文本工具(在 Adob​​e Reader 或您选择的 PDF 查看器中),您无法复制和粘贴?另一种方法是通过 Calibre 运行 PDF 文档。但是:我在您的链接文档中根本看不到任何代码。代码本身在哪里?
  • 该死,补充中的语法似乎确实笨拙:Swihart 等人显然还定义了具有超过 30 个(!)参数的绘图函数,而没有设置任何默认值;出于实际原因,如果有人真正阅读了论文中的描述并定义了他/她自己的实现(并且可能会在下面发布它),那么它甚至可能会更有效......

标签: r graph


【解决方案1】:

回答实际问题:代码在此处的 pdf 文档中:http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2937254/bin/NIHMS225391-supplement-1.pdf

我在 Adob​​e Reader 中轻松选择了代码并将其复制/粘贴到文本文档中。

【讨论】:

  • 当。这次奏效了。谢谢。无论如何,现在对千层面图的参考就在这里。但是,鉴于@TexB 的评论,我不确定是否应该将其标记为已回答,因为可能会有更好的代码。
【解决方案2】:

烤宽面条图看起来就是热图,虽然名字很可爱。热图在其他包中绘制得非常好。考虑 Carl Witthoft 指出的代码中的第一个示例图。您可以像这样在ggplot 中复制它:

## Create the data
palette <- brewer.pal(4, "PuOr")[-2]
## the matrix containing data for Figure 02a
H.mat <- matrix(NA, nrow=4, ncol=6)
H.mat[1, 1:6] = 100*c(2, 1, 1, 1, 1, 2)
H.mat[2, 1:6] = 100*c(2, 2, 2, 3, 2, 1)
H.mat[3, 1:6] = 100*c(2, 2, 1, 1, 1, 3)
H.mat[4, 1:6] = 100*c(3, 3, 2, 1, 2, 3)

library(ggplot2)
library(reshape2)
rownames(H.mat)<-c('P1','T1','P2','T2')
colnames(H.mat)<-seq(ncol(H.mat))
names(dimnames(H.mat))<-c('Subject','Time')
H.df<-melt(H.mat)

根据您的需要,您可以获得不同类型的颜色。

# For continuous values.
ggplot(H.df,aes(x=Time,y=Subject,fill=value)) + geom_tile(colour='black') 

# If you consider the value to be categorical.
ggplot(H.df,aes(x=Time,y=Subject,fill=factor(value))) + 
  geom_tile(colour='black') 

# If you want those exact colours the author used:
col<-palette[match(ordered(H.df$value),levels(ordered(H.df$value)))]
ggplot(H.df,aes(x=Time,y=Subject,fill=col)) + 
  geom_tile(colour='black') + scale_fill_identity()

【讨论】:

  • 我不知道如何正确使用作者所做的确切颜色,所以我使用了俗气的 hack。如果有人能告诉我如何以更自然的方式正确地将自定义颜色提供给 ggplot,请告诉我,我会更改答案。
  • 我想你已经明白了!
【解决方案3】:

多年后,基于 nograpes 的回答开始了一个 github repo。

https://github.com/swihart/lasagnar

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多