Ich möchte ein Pixelraster mit den Werten einer Normalverteilung in es wie untenWie erstellt man eine Matrix mit einer Normalverteilung in r?
im BildWer weiß, wie dies in R gefüllt zu tun haben?
Ich möchte ein Pixelraster mit den Werten einer Normalverteilung in es wie untenWie erstellt man eine Matrix mit einer Normalverteilung in r?
im BildWer weiß, wie dies in R gefüllt zu tun haben?
Es ist nicht klar, was Sie tun möchten. Fragen Sie, wie Sie aus einer bivariaten Normalverteilung abtasten können? Oder wie man eine Heatmap erstellt? Oder wie man Text auf einer Heatmap überlagert? Aber ok, ich beiße ...
Hier ist ein Beispiel von Grund auf, wie man Daten erzeugt und eine Heatmap mit Zahlen erzeugt, die Zählimpulse pro Behälterkasten anzeigen.
# Create sample data
require(MASS);
set.seed(2017);
mu <- c(5, 5);
sigma <- diag(c(2, 2));
df <- as.data.frame(mvrnorm(10000, mu = mu, Sigma = sigma));
colnames(df) <- c("x1", "x2");
# Bin breaks
nbins <- 20;
breaks_x <- seq(floor(min(df$x1)), ceiling(max(df$x1)), length.out = nbins);
breaks_y <- seq(floor(min(df$x2)), ceiling(max(df$x2)), length.out = nbins);
# Frequency table
freq <- as.data.frame(table(
as.numeric(cut(df$x1, breaks = breaks_x)),
as.numeric(cut(df$x2, breaks = breaks_y))));
# Plot matrix
mat <- diag(nbins) * 0;
mat[cbind(freq[, 1], freq[, 2])] <- freq[, 3];
image(breaks_x, breaks_y, mat, col= rainbow(10));
text(breaks_x[freq$Var1], breaks_y[freq$Var2], freq$Freq, cex = 0.8);
Oder wenn Sie in einer Heatmap nur daran interessiert sind, können Sie ggplot2
mit stat_bin2d
verwenden.
require(ggplot2);
ggplot(data.frame(df), aes(x1, x2)) + stat_bin2d(bins = 20) + scale_fill_gradientn(colours = rainbow(32));
Oder gplots::hist2d
.
Siehe here Weitere Optionen ...
Vielen Dank! Es könnte ein bisschen einfacher sein, da ich nicht jede Zeile Ihres Codes verstehe ... :-) – Robert
@Robert Gern geschehen. Wie Sie bemerkt haben, hat Ihre Frage eine ganze Reihe von negativen Bewertungen bekommen. Das liegt daran, dass SO kein Forum ist, in dem Sie andere bitten, den Code für Sie zu schreiben. noch ist dies ein Forum, um dich zu unterrichten R. Fragen wie deine sind normalerweise verpönt. Stattdessen sind SO-Mitglieder mehr als glücklich, beim Debuggen/Verbessern von Code zu helfen **, nachdem Sie selbst eine beträchtliche und sichtbare Menge an Nachforschungen gemacht haben **. Als Ratschlag für die Zukunft sollten Sie [die SO-Tour] (https://Stackoverflow.com/tour) besuchen und erfahren, [wie Sie Fragen stellen können] (https://stackoverflow.com/help/how- Fragen)). –
Verstanden. Aber da ich den Code nicht verstehe, möchte ich es selbst ausprobieren. – Robert
Wie die Logik, um die Werte zu berechnen sein sollte? Was hast du versucht, dein Ergebnis zu produzieren? Der Grafiktyp ist eine *** Heatmap ***. – jogo