2017-02-02 4 views
0

Ich bekomme unerwartetes Verhalten im Aussehen von ggplot2. Wenn ich große Datenmengen plotte, scheint das Standardthema von theme_grey zu etwas wie theme_bw zu wechseln. Ich kann dies auf dem bestimmten Datensatz reproduzieren, an dem ich gerade arbeite, kann ihn aber nicht auf simulierten Daten reproduzieren.Unerwartete Themaänderung in ggplot2

Auf jeden Fall ist hier der Code:

ggplot(df2, aes(x = Sequence, y = y, color = as.factor(group))) + 
geom_point(shape=19, alpha = 0.8) 
nrow(df2) 
[1] 4330 

Ergebnisse in: enter image description here

Nun, wenn ich eine Teilmenge der Daten übernehmen:

df3 <- slice(df2, 1:10) 
ggplot(df3, aes(x = Sequence, y = y, color = as.factor(group))) + 
    geom_point(shape=19, alpha = 0.8) 

Ergebnisse in: enter image description here

Ich habe versucht:

  • Deinstallation/Neuinstallation ggplot2
  • manuell ein Thema
  • Entladen alle Pakete außer ggplot2
  • Arbeiten außerhalb eines Projekts

Probe von 5 obs Angabe:

> dput(df2[1:5, ]) 
structure(list(Sequence = c("1", "2", "3", "4", "5"), group = c(0, 
0, 0, 0, 0), y = c(7711.945, 7695.075, 3432.585, 8081.19, 7344.455 
)), .Names = c("Sequence", "group", "y"), row.names = c(NA, 5L 
), class = "data.frame") 
+1

Es sieht so aus, als wäre die Sequenz als Faktor gespeichert. Möchten Sie, dass es numerisch ist? – Dason

+0

Könnten Sie uns eine Vorstellung von Ihrem Input für die Handlung geben? Vielleicht mit dput? –

+0

Einstellung 'df $ Sequenz <- as.numerisch (df $ Sequenz)' macht keinen Unterschied –

Antwort

1

Ihr Eingang f oder "x" wird derzeit als Faktor gespeichert (ich vermute). Der folgende Code reproduziert das Problem, das Sie haben, und die letzte Zeile, in der das x in numerisches Format konvertiert wird, behebt das Problem.

# make some test input 
n <- 5000 
df <- data.frame(x = factor(1:n), y = rnorm(n), group = sample(0:1, n, replace = T)) 

library(ggplot2) 

# Using the x "as is" which is currently a factor 
ggplot(df, aes(x = x, y =y, color = as.factor(group))) + geom_point(shape = 19, alpha = 0.8) 
# Converting to numeric we see the desired result 
ggplot(df, aes(x = as.numeric(x), y =y, color = as.factor(group))) + geom_point(shape = 19, alpha = 0.8) 
+0

Ich bekomme nicht das erwartete Ergebnis in der zweiten ggplot Anruf. –

+0

Seltsamerweise: ** bekomme ich das erwartete Ergebnis vom zweiten ggplot, wenn ich '+ theme_gray()' –

+0

hinzufüge. Zwei Fragen: 1. Gibt es Optionen in R/ggplot, um ein globales Standardggplot-Thema zu setzen? 2. Ist das Problem, anders aussehen, je nachdem, ob Sie Faktor vs numerische haben wollen? –