2015-09-28 3 views
0

J'utilise expression() pour créer une chaîne qui inclut des lettres grecques. Mon étiquette de légende est la suivante:Comment supprimer l'espace automatique après les lettres grecques utilisant la bibliothèque du cairo?

legend.label = paste(mu, "+", sigma, ", ", mu, ", ", mu, "+", sigma, " of 
random strategy", sep ="") 

Cela devrait me donner quelque chose comme: μ + σ, μ, μ + σ de la stratégie aléatoire, mais je reçois ceci: enter image description here

Il semble que s'il y a un espace automatique après les lettres grecques. J'ai déjà essayé d'utiliser l'opérateur * et ~, mais cela n'a pas aidé. J'utilise le paquet cairo pour créer des parcelles anti-anialisées. Cependant, sans utiliser le paquet cairo, j'ai l'impression d'obtenir le bon résultat. Est-ce que quelqu'un a une idée de comment résoudre ce problème? Merci!

+0

Pas 100% sûr de ce que vous voulez savoir. Mais dans ce cas, mu est la valeur attendue et sigma est l'écart type par rapport à cette valeur attendue. mu + sigma construit la limite supérieure d'un intervalle de confiance et mu-sigma la borne inférieure. – Sket

+1

Oh désolé, pense que j'ai compris ce que tu veux dire. mu et sigma sont juste les lettres grecques, ils ne sont pas des variables. R les reconnaît si vous les appelez comme ça. Je ne les ai pas définis à l'avance. – Sket

+0

Je ne les ai pas définis et n'ai pas chargé n'importe quel paquet. J'ai remarqué que j'ai aussi l'erreur, mais j'ai quand même obtenu le résultat illustré ci-dessus. De toute façon, votre solution résout le problème sans les utiliser. Merci beaucoup pour votre aide! – Sket

Répondre

3

Je ne sais pas comment vous avez défini les « lettres grecques » mais vous pouvez utiliser le unicode pour les mettre sans espace dans votre légende:

plot(0:1, 0:1, type="none", main="\U03BC+\U03C3, \U03BC, \U03BC+\U03C3 of 
random strategy") 

enter image description here

2

La façon de le faire est décrit dans help("plotmath"):

plot(1) 
legend("top", legend = expression(paste(mu + sigma, 
             ", ", 
             mu, 
             ", ", 
             mu + sigma, 
             " of random strategy")), 
     lty = 1, col = "red", bty = "n") 

resulting plot

+1

@CathG Les espaces ne sont pas autour des lettres, mais autour des signes '+' (comme ils devraient). Vous pouvez les éviter avec 'expression (paste (mu," + ", sigma))'. – Roland

+0

Merci pour votre réponse! J'ai essayé beaucoup de choses avant et c'est l'un d'entre eux. Cela fonctionne totalement bien tant que vous n'utilisez pas la librairie cairo pour créer l'intrigue. Malheureusement, j'ai dû utiliser cette bibliothèque, qui a abouti dans les mêmes espaces comme sur la photo dans mon post ci-dessus. La solution de CathG n'a cependant pas ce problème. – Sket