そのような例示的なマトリックスからナイトツアープロットを作成する必要があります。
Mat = matrix(c(1, 38, 55, 34, 3, 36, 19, 22,
54, 47, 2, 37, 20, 23, 4, 17,
39, 56, 33, 46, 35, 18, 21, 10,
48, 53, 40, 57, 24, 11, 16, 5,
59, 32, 45, 52, 41, 26, 9, 12,
44, 49, 58, 25, 62, 15, 6, 27,
31, 60, 51, 42, 29, 8, 13, 64,
50, 43, 30, 61, 14, 63, 28, 7), nrow=8, ncol=8, byrow=T)
番号は、騎士がパスを作成するために移動する順序を示します。私は私が読みやすい方法でそれらを提示する方法はありませんが、私は行列与えられたRは、このようなプロットを作成することが可能であることが判明し、サイズは75までチェス盤との結果、これらの種類の多くを持っている:リンク(これは50x50のサイズです)
したがって、2つのポイント間の線は、1-2-3-4-5-...-64のような数値の間に発生する行列を示したマトリックスの場合、最終的にはリンクに提示されたパスを作成しますが、8x8チェスボードの場合、 50x50の代わりに
しかし、私はRを十分に習得するために十分な時間を費やしており、あらゆる方向性に絶望的です。マトリックスをそのようなプロットに変換するRでのそのようなコードの作成はどれほど難しいでしょうか?それとも些細なことですか?すべてのコードサンプルは祝福です
geom_path
ここで説明するように使用できます:ggplot2ラインプロット順序
そのためには、マトリックスをティブルに変換する必要があります。
coords <- tibble(col = rep(1:8, 8),
row = rep(1:8, each = 8))
coords %>%
mutate(order = Mat[8 * (col - 1) + row]) %>%
arrange(order) %>%
ggplot(aes(x = col, y = row)) +
geom_path() +
geom_text(aes(y = row + 0.25, label = order)) +
coord_equal() # Ensures a square board.
colとrowの位置から.5を引くと、チェス盤の感覚がより自然になります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加