2017-10-20 12 views
1

je le code suivant dans R qui est modifié à partir here, qui trace une table de tableau croisé:Visualizing tableaux croisés avec un terrain en R - couleurs changeantes

#load ggplot2 
library(ggplot2)       

# Set up the vectors       
xaxis <- c("A", "B") 
yaxis <- c("A","B") 

# Create the data frame 
df <- expand.grid(xaxis, yaxis) 
df$value <- c(120,5,30,200)  

#Plot the Data 
g <- <- ggplot(df, aes(Var1, Var2)) + geom_point(aes(size = value), colour = "lightblue") + theme_bw() + xlab("") + ylab("") 
g + scale_size_continuous(range=c(10,30)) + geom_text(aes(label = value)) 

Elle produit la figure de droite, qui est grande, mais j'espérais personnaliser les quatre points, idéalement de sorte que le haut à gauche et le bas à droite soient tous deux d'une couleur et le haut à droite et le bas à gauche en soient une autre.

J'ai essayé d'utiliser:

+ scale_color_manual(values=c("blue","red","blue","red")) 

mais cela ne semble pas fonctionner. Des idées?

Répondre

0

Je vous suggère de colorier par un vecteur dans votre trame de données, comme vous n'avez pas de colonne qui vous donne ceci, vous pouvez en créer un, ou faire une règle basée sur des colonnes existantes (ce que j'ai fait ci-dessous):

g <- ggplot(df, aes(Var1, Var2)) + geom_point(aes(size = value, colour = (Var2!=Var1))) + theme_bw() + xlab("") + ylab("") 
g + scale_size_continuous(range=c(10,30)) + geom_text(aes(label = value)) 

la partie importante est: color = (Var2 = Var1), notez que je mets ceci à l'intérieur de l'esthétique (aes) pour le geom_point

Edit: si vous souhaitez supprimer la légende (vous annotez le graphique avec les totaux, donc je suppose que vous n'en avez pas vraiment besoin), vous pouvez ajouter: g + theme(legend.position="none") pour remo Cela donne

+0

Cela donne deux légendes distinctes – PoGibas