【问题标题】:How do we plot chessboard (N by N) grid?我们如何绘制棋盘(N×N)网格?
【发布时间】:2016-03-11 11:57:56
【问题描述】:

如果我有这样的 CSV:

row,column
1,0
5,1
7,2
2,3
0,4
3,5
6,6
4,7

来自 CSV 数据的填充黑色方块导致:

我在底层绘图上绘制黑色方块。无法将黑色方块放在正确的部分。我还是 R 新手,所以我遇到了一些困难。我哪里错了?

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 行,它仍然可以处理。

【问题讨论】:

    标签: r csv plot ggplot2


    【解决方案1】:

    先读入数据:

    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以该点为中心,我们给一个偏移量

    offset <- 0.5
    chessdat2 <- chessdat + offset
    

    然后像你一样绘制:

    ggplot(chessdat2, aes(row,column)) + geom_tile() + theme_bw()
    

    这给出了:

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

    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))
    

    这给出了情节:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-02
      • 1970-01-01
      相关资源
      最近更新 更多