用网格绘图

时间:2013-08-14 17:14:27

标签: r graph plot data.table

我正在寻找一种基本上是网格的情节。例如,将有10列和50行。例如,像这样:

enter image description here

每个方框(在这种情况下,10 * 50 = 500)将具有我将通过数据框提供的唯一值。基于唯一值,我将有一个为每个框指定颜色的功能。那么它就变成了一个可视化每个盒子“范围”的网格。我还需要标记每个列(可能是垂直所有标签都适合)和行(水平)。

我只是不知道将会是什么样的情节,我不知道是否有任何图书馆这样做。我只是在找一些帮助找到这样做的东西。如果可能的话,我会感激一些帮助。

4 个答案:

答案 0 :(得分:6)

heatmap怎么样?

m=matrix(runif(12),3,4)
rownames(m)=c("Me","You","Him")
colnames(m)=c("We","Us","Them","I")
heatmap(m,NA,NA)

enter image description here

请注意,它适用于matrix而不是data frame,因为所有值都必须是数字,而data frames是面向行的记录。

请参阅其他选项的帮助。

答案 1 :(得分:4)

如果想要更多控制,请查看图形包中的image函数或rasterImage函数。

您还可以使用rect函数从头开始构建绘图。

答案 2 :(得分:4)

我会去ggplot2因为它允许高度的灵活性。特别是geom_tile很有用。如果您确实需要面板线,则可以注释掉theme(panel.grid.major = element_blank()) +theme(panel.grid.minor = element_blank()) +行,当然您也可以指定颜色。每个单元格中的文本是可选的;如果您不需要,请注明geom_text来电。请注意,只需调整绘图窗口大小即可控制绘图的大小(行和列),或者 - 如果要使用png()输出到文件 - 通过指定width和{{1参数。

height

输出:

screenshot

并调整大小:

screenshot

答案 3 :(得分:2)

假设您的网格每个单元格都有一个“ x ”和“ y ”坐标的数据框,并且变量“ z “对于每个单元格,您在R中加载了这个数据框,称为” intlgrid “:

head(intlgrid)

      x       y        z 

243.742 6783.367 0.0035285

244.242 6783.367 0.0037111

244.742 6783.367 0.0039073

"..."
"so on..."

使用ggplot2包,您可以轻松绘制栅格。所以:

install.packages("ggplot2")

一旦安装了ggplot2,你只需要调用它

library(ggplot2)

现在代码:

ggplot(intlgrid, aes(x,y, fill = z)) + geom_raster() + coord_equal()

然后你就可以绘制网格了。