J'essaie de créer un graphique comme celui ci-dessous dans R, mais cela s'est révélé être plus difficile que de le faire dans Excel. X est une variable catégorique, y est continue, puis la couleur serait une variable dichotomique et un type de ligne autre. Comment puis-je continuer à le faire? J'ai essayé d'utiliser le code suivant, mais si je change l'une des dimensions de la ligne ou la couleur, cela donne simplement un avis "Erreur: Geom_Path: Si vous utilisez des lignes pointillées ou pointillées, la couleur, la taille et la ligne de ligne doivent être constantes sur la ligne". Comment puis-je l'adapter?
ggplot(RT, aes(x= Block, y= mean, group = Probability, color=Probability))+ geom_errorbar(aes(ymin=mean-CI, ymax=mean+CI), width=.1, position=position_dodge(0.05)) + xlab("Epoch") + geom_line(aes(linetype=Probability), size = 1) + geom_point(aes(shape=Probability))+ facet_wrap(~ Session, scales="free") + coord_cartesian(ylim = c(370, 530)) + scale_color_grey(start=0.85, end=0.2)+ theme_classic()
3 Réponses :
Il est possible de faire en ajoutant une variable de regroupement et une esthétique de groupe. Voici un reprex complet: p> Créé le 2020-08-03 par le package Reprex (v0.3.0) sup> p> p> p>
Il serait plus facile de voir ce qui se passe mal si vous postez un échantillon de vos données afin que nous puissions prendre votre code GGPLOT et l'exécuter pour voir ce qui se passe.
Cependant, une inspection rapide de votre code révèle certains problèmes. Vous mappez votre Voici un exemple minimal. Dans cet exemple, j'ai une variable factice appelée voici la parcelle qu'il produit. p> Probabilité Code> Variable à quatre esthétiques: groupe, couleur, type et forme. Chacun des groupes, de couleur et de lineType doivent être mappés sur une variable différente. P>
groupe code> qui sépare chaque ligne. Je mappe
var1 code> à couleur et
var2 code> à lineType. Étant donné que mes données ont seulement un point par combinaison de x, y, groupe, de couleur et de lineType, je dois définir
stat = identité code> pour laisser
geom_line code> savoir que c'est intentionnel. p>
Je pense que je n'étais pas entièrement clair, je suis désolé. J'ai quatre variables catégoriques, l'une est la X, une autre est ce que vous représentéez comme Var1 et Var2 et, enfin, il y a un quatrième qui est censé résulter de deux graphes distincts (d'où la facette_wrap (~ session, la balance = "free") ). J'ai essayé d'utiliser votre exemple mais je ne suis pas sûr de ce que vous représentez par la variable "groupe".
L'astuce consiste à effectuer une variable d'interaction à partir de vos vars p> p> p> P> var1 code> et
var2 code> qui donne un facteur avec quatre niveaux représentant la série de quatre
code>. (Fondamentalement, cela correspond à la variable code> code> dans la réponse par @allancameron). Cette nouvelle variable d'interaction peut ensuite être mappée sur les deux
couleur code> et
LineType code> qui entraîne une légende. Les couleurs et les traits de linetypes peuvent ensuite être définis via
échelle_color_manual code> et
échelle_linetype_manual code>. Essayez ceci:
J'aimerais pouvoir avoir sélectionné les réponses à la fois à la fois à la fois que j'ai utilisé une combinaison des deux. Mais puisque je ne réussirais pas à y arriver sans votre argument d'interaction, j'ai décidé d'accepter le vôtre comme le correct. Je vous remercie beaucoup pour votre aide!
Pouvez-vous ajouter, s'il vous plaît, un exemple reproductible?
@iago auriez-vous besoin de données? Ou est-ce suffisant pour donner un peu d'entre eux? Les variables seraient: x (entre et); y (variable continue - représentant des temps de réponse); variable 1 (entre 1 et 2) et variable 2 (entre 1 et 2). Je mentionne qu'il y a cinq variables, mais la cinquième résulterait de deux graphiques, une pour chaque session. J'ai du mal à représenter les deux variables (variable 1 et 2) dans le même graphique.
Oui, certaines données reproductibles sont nécessaires (regardent Stackoverflow.com/help/minimal-reproductible-example ). Comme dans la réponse à @ Allan-Cameron: ne répond pas à votre question? Pourquoi? Qui est différent dans vos données avec l'exemple data.frame qu'il définit? C'est à cause de cela, vous devez ajouter des données reproductibles, pour savoir exactement ce que vous voulez.
J'espère que le jeu de données aide, je n'ai tout simplement pas réussi à comprendre ce qu'ils signifiaient par «groupe» car je n'ai que quatre variables par graphique, avec le cinquième étant pour le Facet_Wrap. Donc, pour moi seulement le "ggplot (df) + geom_line (AES (x, y, couleur = var1, linetype = var2), stat =" identité ")" + facet_wrap (~ var3, balance = "free") a un sens. Mais cela n'entraîne pas le graphique que je désire.