首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R蓝图/平面图

R蓝图/平面图
EN

Stack Overflow用户
提问于 2016-04-08 14:33:11
回答 2查看 646关注 0票数 1

我正在试图代表R.的一座办公楼,我需要代表多层楼,但现在我需要从一层开始。有许多立方体都在一个规则的结构中。初级员工有四个小立方体(4x4),高级工程师和经理(4x6)有两个更大的立方体。一旦这些被绘制出来,我需要能够显示它们是被占用的还是免费的--通过颜色(比如红色表示占用,绿色表示可用)。这些都是一样的布局方式,大的在一端。例如,

代码语言:javascript
复制
+----+--+--+
| S  |J1|J2|
+----+--+--+
<-hallway-->
+----+--+--+
| M  |J3|J4|
+----+--+--+

我最初以为我可以使用ggplot,只需分散每个人,但我想不出如何用geom_point捕获不同大小的立方体。我花了一些时间看地图,但似乎我不能真正利用我的平面图的常规结构--也许这真的是一条路,我利用我的常规结构构建了一张地图?R有一个概念,我应该谷歌这种结构吗?

最后,我将得到一个很长的数据文件,其中包含一个小隔间的类型、集群的x和y坐标以及一个"R“或"G”(4列)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-08 21:26:46

您还可以编写一个低级的图形函数;它有时比从复杂的绘图中删除越来越多的组件更容易调优,

代码语言:javascript
复制
library(grid)
library(gridExtra)

floorGrob <- function(S = c(TRUE, FALSE), J = c(TRUE, FALSE, TRUE, TRUE), 
                      draw=TRUE, newpage=is.null(vp), vp=NULL){
  m <- rbind(c(1,3,4), # S1 J1 J2
             c(7,7,7), # hall
             c(2,5,6)) # S2 J3 J4
  fills <- c(c("#FBB4AE","#CCEBC5")[c(S, J)+1],  "grey90")
  cellGrob <- function(f) rectGrob(gp=gpar(fill=f, col="white", lwd=2))
  grobs <- mapply(cellGrob, f=fills, SIMPLIFY = FALSE)
  g <- arrangeGrob(grobs = grobs, layout_matrix = m, vp = vp, as.table = FALSE,
              heights = unit(c(4/14, 1/14, 4/14), "null"),
              widths = unit(c(6/14, 4/14, 4/14), "null"), respect=TRUE)

  if(draw) {
    if(newpage) grid.newpage()
    grid.draw(g)
  }
  invisible(g)
}

floorGrob()
票数 1
EN

Stack Overflow用户

发布于 2016-04-08 15:11:03

怎么样?

代码语言:javascript
复制
df <- expand.grid(x = 0:5, y = 0:5)
df$color <- factor(sample(c("green", "red"), 36, replace = T))
head(df)
#   x y color
# 1 0 0 green
# 2 1 0 green
# 3 2 0 green
# 4 3 0   red
# 5 4 0 green
# 6 5 0   red

library(ggplot2)
ggplot(df, aes(x, y, fill = color)) + 
  geom_tile() +
  scale_fill_manual(name = "Is it open?",
                    values = c("lightgreen", "#FF3333"),
                    labels = c("open", "not open"))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36502328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档