Come correggere l'errore r: valore discreto fornito su scala continua


Un errore che potresti riscontrare in R è:

 Error: Discrete value supplied to continuous scale

Questo errore si verifica quando tenti di applicare una scala continua a un asse in ggplot2, quando la variabile su quell’asse non è numerica.

Questo tutorial spiega esattamente come correggere questo errore.

Come riprodurre l’errore

Supponiamo di avere il seguente frame di dati in R:

 #create data frame
df = data. frame (x = 1:12,
                y = rep(c('1', '2', '3', '4'), times= 3 ))

#view data frame
df

    xy
1 1 1
2 2 2
3 3 3
4 4 4
5 5 1
6 6 2
7 7 3
8 8 4
9 9 1
10 10 2
11 11 3
12 12 4

Supponiamo ora di provare a creare un grafico a dispersione con una scala dell’asse y personalizzata utilizzando l’argomento scale_y_continuous() :

 library (ggplot2)

#attempt to create scatterplot with custom y-axis scale
ggplot(df, aes (x, y)) +
  geom_point() +
  scale_y_continuous(limits = c(0, 10))

Error: Discrete value supplied to continuous scale

Stiamo ricevendo un errore perché la nostra variabile dell’asse Y è un carattere anziché una variabile numerica.

Possiamo confermarlo utilizzando la funzione class( ):

 #check class of y variable
class(df$y)

[1] “character”

Come correggere l’errore

Il modo più semplice per correggere questo errore è convertire la variabile dell’asse Y in una variabile numerica prima di creare il grafico a dispersione:

 library (ggplot2) 

#convert y variable to numeric
df$y <- as. numeric (df$y)

#create scatterplot with custom y-axis scale
ggplot(df, aes (x, y)) +
  geom_point() +
  scale_y_continuous(limits = c(0, 10))

Tieni presente che non riceviamo alcun errore perché abbiamo utilizzato scale_y_continuous() con una variabile numerica anziché una variabile di carattere.

Puoi trovare la documentazione online completa per la funzione scale_y_continuous() qui .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre funzioni di stampa comuni in ggplot2:

Come impostare le interruzioni degli assi in ggplot2
Come rimuovere le etichette degli assi in ggplot2
Come ruotare le etichette degli assi in ggplot2

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *