Domanda

A me è appena arrivata una croce bello questo codice che rende questa matrice di scatter plot:

alt text
(fonte: free.fr)

E volevo implementare per un likret variabili di scala (numeri interi da 1 a 5), facendo il punto taglie/colori (in basso a triangolo) si differenziano in base al numero di opzioni di che tipo di verifica (come l'effetto del jitter potrebbe mi hanno dato).

Qualche idea su come fare questo su base tramando meccanismo ?

Aggiornamento:

Ho fatto la seguente funzione, ma non so come avere la scala dei punti sempre essere "buono", cosa ne pensi ?

panel.smooth2 <- function (x, y, col = par("col"), bg = NA, pch = par("pch"), 
                    cex = 1, col.smooth = "red", span = 2/3, iter = 3, ...) 
{
    require(reshape)
    z <- merge(data.frame(x,y), melt(table(x ,y)),sort =F)$value
    z <- z/ (4*max(z)) 

    symbols( x, y,  circles = z,#rep(0.1, length(x)), #sample(1:2, length(x), replace = T) ,
            inches=F, bg="blue", fg = bg, add = T)

    # points(x, y, pch = pch, col = col, bg = bg, cex = cex)
    ok <- is.finite(x) & is.finite(y)
    if (any(ok)) 
        lines(stats::lowess(x[ok], y[ok], f = span, iter = iter), 
            col = col.smooth, ...)
}



a1 <- sample(1:5, 100, replace = T)
a2 <- sample(1:5, 100, replace = T)
a3 <- sample(1:5, 100, replace = T)
aa <- data.frame(a1,a2,a3)


pairs(aa , lower.panel=panel.smooth2)
È stato utile?

Soluzione

È possibile utilizzare 'simboli'(analogamente ai metodi di 'linee', 'abline' et al.)

Questo metodo vi darà il controllo capillare entrambi i simboli dimensione e il colore in una sola riga di codice.

L'utilizzo di 'simboli' è possibile impostare le dimensioni del simbolo, il colore e la forma.Forma e dimensioni sono impostate tramite il passaggio di un vettore per la dimensione di ogni simbolo e l'associazione a 'cerchi nel grano', 'piazze', 'rettangoli', o di 'stelle', ad esempio, le 'star' = c(4, 3, 5, 1).Il colore è impostato con 'bg' e/o 'fg'.

symbols( x, y, circles = circle_radii, inches=1/3, bg="blue", fg=NULL) 

Se ho capito bene la seconda parte della tua domanda, si desidera essere ragionevolmente sicuri che la funzione si utilizza per scalare i simboli nella trama fa in modo significativo.I simboli di funzione scale (per esempio) il raggi di cerchi in funzione dei valori di una 'z' variabile (o dati.telaio colonna, etc.) Nella riga sotto, ho impostato il simbolo max dimensioni (in un raggio di 1/3 pollici--ogni simbolo, ad eccezione per il più grande ha un raggio di qualche frazione minore, in scala dal rapporto tra il valore di tale dat punto oltre il valore più grande.di quella in proporzione È questa una buona scelta?Non so--mi sembra che il diametro o particolarmente circonferenza potrebbe essere migliore.In ogni caso, che una modifica banale.In somma, 'simboli' con 'cerchi' passato in scala il raggio di curvatura dei simboli in proporzione alla 'z' di coordinate, che sono probabilmente più adatto per le variabili continue.Vorrei usare il colore ('bg') per le variabili discrete/fattori.

Un modo per utilizzare simboli è quello di chiamare il plot della funzione e passare type='n' che crea la trama oggetto, ma sopprime disegnare i simboli in modo che si possono rappresentare con i simboli di funzione successiva.

Non vorrei raccomandare 'cex' per questo scopo.'cex' un fattore di scala sia per la dimensione del testo e simboli di dimensioni, ma quali di questi due elementi della trama colpisce dipende da quando si passa in--se si imposta tramite la 'par' quindi agisce sulla maggior parte del testo visualizzato sul terreno;se si imposta all'interno della 'trama' funzione, quindi, colpisce i simboli di dimensioni.

Altri suggerimenti

Certo, basta usare cex:

set.seed(42)
DF <- data.frame(x=1:10, y=rnorm(10)*10, z=runif(10)*3) 
with(DF, plot(x, y, cex=z))

che ti dà diverse cerchio dimensioni.Il colore può essere semplicemente una quarta dimensione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top