首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们如何绘制棋盘(N乘N)网格?

我们如何绘制棋盘(N乘N)网格?
EN

Stack Overflow用户
提问于 2015-12-07 07:25:25
回答 1查看 1.7K关注 0票数 4

如果我有这样的CSV:

代码语言:javascript
复制
row,column
1,0
5,1
7,2
2,3
0,4
3,5
6,6
4,7

从CSV数据填充的黑色方块结果为:

我的图在下面的图上画出了黑色方块。在把黑色方块放在正确的位置上有困难。我仍然是R的新手,所以我遇到了一些困难。我哪里错了?

代码语言:javascript
复制
library(data.table)

library(reshape2)
library(ggplot2)

data_csv <- fread('./data.csv')

mx <- matrix(data_csv, nrow=8, ncol=8)

ggplot(melt(mx), aes(x=Var1, y=Var2)) + geom_tile()

尝试使其动态化,以便当CSV增长到n线路时,它仍然可以处理。

EN

回答 1

Stack Overflow用户

发布于 2015-12-07 07:47:38

首先读取数据:

代码语言:javascript
复制
chessdat <- read.table(text='row,column
1,0
5,1
7,2
2,3
0,4
3,5
6,6
4,7', sep =',', header = T)

因为geom_tile在该点居中,所以让我们给出一个偏移量

代码语言:javascript
复制
offset <- 0.5
chessdat2 <- chessdat + offset

然后像你之前做的那样绘制:

代码语言:javascript
复制
ggplot(chessdat2, aes(row,column)) + geom_tile() + theme_bw()

这就给出了:

然后稍微调整一下格式,我们就可以进入棋盘了:

代码语言:javascript
复制
ggplot(chessdat2, aes(row,column)) + geom_tile() + 
     theme_bw() + 
     theme(panel.grid.major = element_line(size = 2, color='black'),       
     panel.grid.minor = element_line(size=2, color = 'black'),
     axis.ticks = element_blank(), 
     axis.text = element_blank(), 
     axis.title = element_blank()) + 
     coord_cartesian(xlim=c(0,8), ylim=c(0,8))

这就给出了这个图:

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

https://stackoverflow.com/questions/34124131

复制
相关文章

相似问题

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