R中的扑克手牌范围图表可视化
Poker hand range chart visualization in R
是否可以像这样在 R 中可视化扑克手牌范围图表?
我想显示玩家有多少次手牌,所以会有频率的数字。如果玩家有 5 次 AA,标题 AA 下的小 5 等等。根据频率改变每只手的颜色会很棒。
编辑:我基本上已经回答了 OP。
我刚刚花了一段时间学习文本和图像在 R 中的工作方式,仍然不太了解它们,但这是解决您的问题的开始。
这些帖子对我帮助很大:
display a matrix, including the values, as a heatmap
Align text inside a plot
这里有几个帖子可能可以彻底回答你的问题
How to show matrix values on Levelplot
R - image of a pixel matrix?
你或许可以从下面的代码中得出一些想法,但我强调你看一下这句话上面的线程。
编辑:下面的代码可能就是您想要的!
library(lattice)
library(latticeExtra)
x <- c("A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3", "2")
y <- c("2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A" )
grid <- expand.grid(X= x, Y= y)
grid$Z <- c(
rep(0, 12), rep(1, 1),
rep(0, 11), rep(1, 1), rep(2, 1),
rep(0, 10), rep(1, 1), rep(2, 2),
rep(0, 9), rep(1, 1), rep(2, 3),
rep(0, 8), rep(1, 1), rep(2, 4),
rep(0, 7), rep(1, 1), rep(2, 5),
rep(0, 6), rep(1, 1), rep(2, 6),
rep(0, 5), rep(1, 1), rep(2, 7),
rep(0, 4), rep(1, 1), rep(2, 8),
rep(0, 3), rep(1, 1), rep(2, 9),
rep(0, 2), rep(1, 1), rep(2, 10),
rep(0, 1), rep(1, 1), rep(2, 11),
rep(3,1), rep(2, 12)
)
levelplot(Z ~ X*Y, data = grid) +
layer(panel.text(X, Y, paste(X, Y)), data = grid)
我会留给你如何选择不同的颜色,并插入带有 "s" 和 "o" 的不同文本。
尝试使用图像函数
m <- matrix(1:169, ncol=13)
colnames(m) <- paste("Card", 1:13, sep="")
rownames(m) <- paste("Card", 1:13, sep="")
image(1:ncol(m), 1:nrow(m), t(m))
axis(1, 1:ncol(m), colnames(m))
axis(2, 1:nrow(m), rownames(m))
x <- as.data.frame(c("A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3", "2"))
y <- as.data.frame(c("A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3", "2"))
z <- seq(1, 13, 1)
for (i in 1:13)
for (j in 1:13){
text(z[i], z[j], paste(x[i,], y[j,]))
}
是否可以像这样在 R 中可视化扑克手牌范围图表?
我想显示玩家有多少次手牌,所以会有频率的数字。如果玩家有 5 次 AA,标题 AA 下的小 5 等等。根据频率改变每只手的颜色会很棒。
编辑:我基本上已经回答了 OP。
我刚刚花了一段时间学习文本和图像在 R 中的工作方式,仍然不太了解它们,但这是解决您的问题的开始。
这些帖子对我帮助很大:
display a matrix, including the values, as a heatmap
Align text inside a plot
这里有几个帖子可能可以彻底回答你的问题
How to show matrix values on Levelplot
R - image of a pixel matrix?
你或许可以从下面的代码中得出一些想法,但我强调你看一下这句话上面的线程。
编辑:下面的代码可能就是您想要的!
library(lattice)
library(latticeExtra)
x <- c("A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3", "2")
y <- c("2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A" )
grid <- expand.grid(X= x, Y= y)
grid$Z <- c(
rep(0, 12), rep(1, 1),
rep(0, 11), rep(1, 1), rep(2, 1),
rep(0, 10), rep(1, 1), rep(2, 2),
rep(0, 9), rep(1, 1), rep(2, 3),
rep(0, 8), rep(1, 1), rep(2, 4),
rep(0, 7), rep(1, 1), rep(2, 5),
rep(0, 6), rep(1, 1), rep(2, 6),
rep(0, 5), rep(1, 1), rep(2, 7),
rep(0, 4), rep(1, 1), rep(2, 8),
rep(0, 3), rep(1, 1), rep(2, 9),
rep(0, 2), rep(1, 1), rep(2, 10),
rep(0, 1), rep(1, 1), rep(2, 11),
rep(3,1), rep(2, 12)
)
levelplot(Z ~ X*Y, data = grid) +
layer(panel.text(X, Y, paste(X, Y)), data = grid)
我会留给你如何选择不同的颜色,并插入带有 "s" 和 "o" 的不同文本。
尝试使用图像函数
m <- matrix(1:169, ncol=13)
colnames(m) <- paste("Card", 1:13, sep="")
rownames(m) <- paste("Card", 1:13, sep="")
image(1:ncol(m), 1:nrow(m), t(m))
axis(1, 1:ncol(m), colnames(m))
axis(2, 1:nrow(m), rownames(m))
x <- as.data.frame(c("A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3", "2"))
y <- as.data.frame(c("A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3", "2"))
z <- seq(1, 13, 1)
for (i in 1:13)
for (j in 1:13){
text(z[i], z[j], paste(x[i,], y[j,]))
}