2016-05-12 1 views
0

J'ai besoin d'imprimer l'équation suivante sur matplotlib en utilisant plt.text():Python: comment imprimer des équations exponentielles dans matplotlib?

y=1.5*exp(-0.5x)-0.05

Je l'ai utilisé cette ligne, mais mon intrigue ne montre pas l'équation où:

a=1.5 
b=-0.5 
c=-0.05 
plt.text(2, 2, '$y=%3.7sexp+%3.7sx+%3.7s$'%(a, b, c), fontsize=20) 

Que voulez-vous Reckon est le problème? Ou y a-t-il une autre manière élégante d'écrire cette équation, peut-être en utilisant l'exponentielle comme on nous l'a enseigné à l'école?

+1

Avez-vous vérifié l'échelle de l'axe des x et des y dans votre parcelle? Vous avez défini la coordonnée 'text' à' (2,2) 'dans votre code. Si vous déplacez la coordonnée dans l'échelle de votre parcelle, vous devriez voir le texte. –

Répondre

2

Après un peu de tests j'ai compris que cela résout le problème:

a=1.5 
b=-0.5 
c=-0.05 
plt.text(60, 0.6, '$y=%3.7s*e^{%3.7sx}%3.7s$'%(a, b, c), fontsize=15) 

Comme l'a souligné @Andreas Hsieh, les deux premiers arguments se réfèrent au x et y échelle, nous avons dans l'intrigue, de sorte qu'il est facile de comprendre comment appeler cet endroit précis où vous voulez que le texte soit.

Les lignes

rsquared=0.917568 
plt.text(60, 0.5, '$R^{2}=%3.7s$'%(round(rsquared,3)), fontsize=15) 

peuvent être utilisés très efficacement pour remplacer également la valeur au carré R, comme le fait Microsoft Excel dans la régression, ou toute autre valeur (par exemple, la p-valeur).