2017-06-21 2 views
0

J'essaye de faire une étiquette dans une légende de base R qui a un signe supérieur ou égal à suivi d'une valeur numérique qui est recueillie à partir d'une variable. Je peux le faire avec le code suivant en utilisant le caractère Unicode, et la fonction bquote:Symbole Plotmath et référence à une variable dans la légende R plot: possible sans caractère Unicode?

data = c(1,2,3,4) 
paste0("\u2265", bquote(.(data[2]))) 

Je voudrais savoir s'il est possible de faire une telle étiquette, sans le caractère Unicode, tout en faisant référence à une variable pour une valeur numérique. J'ai échoué en utilisant des combinaisons d'appels de fonction imbriqués expression, paste, substitute et bquote, et je n'ai pas vu une question ici qui résout ce problème spécifique (je m'excuse si j'ai manqué quelque chose).

Idéalement, la solution généraliserait aussi à d'autres caractères de tracé.

+2

bquote (> =. (Données [2]))? Soit vous avez lu pas d'aide ("plotmath") ou je ne comprends pas votre question. – Roland

+0

Il en résulte une erreur: "unexpected> =" –

Répondre

1
data = c(1,2,3,4) 

plot.new() 
text(0.5, 0.5, bquote({} >= .(data[2])), cex = 30) 

resulting plot

+0

Qu'est-ce que les accolades ajoutent? Un petit espace? –

+0

Je pense qu'ils n'ajoutent rien mais il semble y avoir un petit espace ajouté après cela rien. – Roland

+0

Cela résout ma question comme demandé, mais le résultat, '≥ 2' ne peut pas être stocké dans une' liste', comme un [1] = 'bquote ({}> =. (Données [2]))' '. Il est interprété comme 3 éléments: {},> =, et 2, et le '≥' ne fait pas partie de ces éléments. Je me rends compte que c'est un problème différent, alors laissez-moi savoir si je devrais poser une question différente, ou ajouter à cette question. –