交互式热图/矩阵可视化

时间:2011-12-13 14:45:57

标签: matrix visualization google-visualization

我想在网页上显示我在R中生成的热图(矩阵)。 我看起来像这样的矩阵,但在我的情况下,大小是300x300。

http://2.bp.blogspot.com/-38wWn7KD6v0/TgTJskG1ujI/AAAAAAAAC5g/0k33b0L5fL8/s1600/heatmap.png

基本上我正在寻找一个交互式集群,它看起来像这样:

http://online.wsj.com/article/SB125993225142676615.html#articleTabs%3Dinteractive

http://mbostock.github.com/protovis/ex/matrix.html

我希望能够在分支上进行clic,然后突出显示所选的组/文本,并淡出矩阵的其余部分。

我环顾四周,找不到多少。我甚至不知道我应该用什么语言? JSON,Flash,HTML5,javascript,谷歌排行榜?

这里有任何意见和建议。

感谢。

7 个答案:

答案 0 :(得分:4)

我认为InCHlib - 交互式群集热图库可能是解决方案。

可从http://openscreen.cz/software/inchlib

获取

答案 1 :(得分:1)

Google Visualization提供此热图选项: http://informatics.systemsbiology.net/visualizations/heatmap/bioheatmap.html

这个项目也适用于更高级的用途,实际上包括鼠标悬停和工具提示,以及线放大: http://code.google.com/p/visquick/

您可能还想看一下jQuery Flot,但要注意WSJ使用一个名为Tableau的超级昂贵的公司进行数据可视化,您不太可能在开源中找到这种级别的可视化视频或免费使用封装

答案 2 :(得分:1)

不幸的是,我有同样的要求。为层次聚类结果创建Clustergram(热图+树形图)。

没有直接解决方案。我使用ProtovisGWT(Choosel)来创建树状图和热图seperatley,然后将它们组合起来。

如果你只是想要js库,你可以使用protovis或d3.js来实现这一点。

答案 3 :(得分:0)

我建议使用JavaScript执行此任务。将热图保存为R

中的SVG
svg("mymap.svg")
heatmap(...)
dev.off()

然后将其作为对象

嵌入到HTML文档中
    <object id="test-svg" width="800" height="600" 
type="image/svg+xml" data="test.svg"></object>

现在,您可以使用JavaScript或ECMAScript进行各种操作。我建议您阅读有关此主题的各种在线教程之一。例如,你可以开始使用这个:http://www.petercollingridge.co.uk/data-visualisation/using-javascript-control-svg

答案 4 :(得分:0)

D3.js的树形图很好地解决了这个问题。见这里

http://mbostock.github.io/d3/talk/20111018/treemap.html

答案 5 :(得分:0)

您可以尝试http://amp.pharm.mssm.edu/clustergrammer/。它不是用R编写的,但您可以通过以制表符分隔格式上传矩阵文件来制作交互式集群图,并且您将返回交互式(可重新排序,可搜索,可过滤等)和可共享的基于Web的可视化

答案 6 :(得分:0)

D3heatmap根据 foreach (MyClass possibleDate in comboBox1.Items) { int stringLength = comboBox1.GetItemText(possibleDate).Length; if (stringLength > longestName.Length) longestName = comboBox1.GetItemText(possibleDate); } ComboBox接口在R中提供带有树形图的交互式热图。它包括单行和列选择,但does not currently allow选择树形图分支。