2016-03-22 13 views
1

Ist es möglich, Visualisierung von Poker Hand Range Chart in R wie dies zu machen?Poker Hand Bereich Diagramm Visualisierung in R

poker hand range chart

Ich möchte zeigen, wie oft Spieler bestimmte Hand hatte, so wird es Zahlen mit der Frequenz. Wenig 5 unter Titel AA, wenn der Spieler AA 5x Mal hatte und so weiter. Es wäre großartig, die Farbe jeder Hand basierend auf der Frequenz zu ändern.

+0

Das nächste, was ich zu diesem Zeitpunkt kommen kann, ist einige 'Paare (Daten)', aber dieses isn nicht ganz, was du willst. Nach was Sie fragen, zeigt Text auf vielen einzelnen Diagrammen an, unsicher, wie man sich nähert. – InfiniteFlashChess

+0

Wie werden Ihre Rohdaten aussehen? – MrFlick

+0

Hände sind im Rahmen und ich benutze Tabellenfunktion, um die Häufigkeit zu bekommen (cards.freq = Tabelle (Karten $ hole_cards). – EdWood

Antwort

3

EDIT: Ich habe im Wesentlichen das OP beantwortet.

Ich habe gerade eine Weile damit verbracht zu lernen, wie Text und Bilder in R arbeiten, verstehe sie immer noch nicht allzu gut, aber hier ist ein Anfang zur Lösung Ihres Problems.

Diese Beiträge half mir sehr:

display a matrix, including the values, as a heatmap

Align text inside a plot

Hier ein paar Beiträge, die wahrscheinlich die Frage gründlich beantworten kann

How to show matrix values on Levelplot

R - image of a pixel matrix?

Sie könnten Ideen aus dem folgenden Code ziehen, aber ich betone, dass Sie den Thread über diesem Satz betrachten.

EDIT: Code unten ist wahrscheinlich, was Sie wollen!

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) 

Ich werde es Ihnen überlassen, um herauszufinden, wie verschiedene Farben zur Auswahl, und legen Sie den unterschiedlichen Text mit dem „s“ und „o“ angebracht.

enter image description here


Versuch unter Verwendung von Bildfunktion

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,])) 
    } 

enter image description here

+0

Könnten Sie bitte erklären, wie ich "s" am Ende des Etiketts hinzufügen kann, wenn Y> X? – jumxozizi

+0

Eine Idee, die Sie tun können, ist eine vierte Spalte zum Datensatz "Grid" hinzufügen. Die vierte Spalte würde eine bedingte Zeichenfolge enthalten, wo, wenn Y> X, dann vierte Spalte = 'S'.Wenn X InfiniteFlashChess