我正在寻找一种基本上是网格的情节。例如,将有10列和50行。例如,像这样:
每个方框(在这种情况下,10 * 50 = 500)将具有我将通过数据框提供的唯一值。基于唯一值,我将有一个为每个框指定颜色的功能。那么它就变成了一个可视化每个盒子“范围”的网格。我还需要标记每个列(可能是垂直所有标签都适合)和行(水平)。
我只是不知道将会是什么样的情节,我不知道是否有任何图书馆这样做。我只是在找一些帮助找到这样做的东西。如果可能的话,我会感激一些帮助。
答案 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)
请注意,它适用于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
输出:
并调整大小:
答案 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()
然后你就可以绘制网格了。