2017-11-29 4 views
2

Gibt es eine Möglichkeit, dass ich ein% Zeichen in einem Grundstück auf Python in einem Text-Objekt oder in einer Legende mit matplotlib drucken kann?„%“ Zeichen in einem matplotlib Python

Dieser Grund Beispiel ohne rohe Prozentzeichen, verhält sich wie erwartet:

plt.figure() 
TotEne,= plt.plot_date(time, ETTG['output'], 'b-', label='Total Energy') 
UsEne,= plt.plot_date(time, EUUG['output'], 'r-',label='Used Energy') 
plt.ylabel('kWh') 
plt.text('2015-12-15',25000,'Energy Losses=%.2f'%pEW, clip_on=True) 
plt.legend(handles=[TotEne,UsEne]) 
plt.show() 

In diesem Fall wird der Text sagt "Energieverluste =". Aber ich frage mich, ob es eine Möglichkeit ist „Energieverluste =%“ oder „% Energieverluste =“ angezeigt werden soll.

Wenn ich versuche, das zu tun, wirft es ein Typeerror. Ich möchte nur das Zeichen "%" anzeigen. Damit dies:

plt.figure() 
TotEne,= plt.plot_date(time, ETTG['output'], 'b-', label='Total Energy') 
UsEne,= plt.plot_date(time, EUUG['output'], 'r-',label='Used Energy') 
plt.ylabel('kWh') 
plt.text('2015-12-15',25000,'%Energy Losses=%.2f'%pEW, clip_on=True) 
plt.legend(handles=[TotEne,UsEne]) 
plt.show() 

Löst diesen Fehler:

--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
<ipython-input-559-9d13c78a6754> in <module>() 
    20 plt.ylabel('kWh') 
    21 
---> 22 plt.text('2015-12-15',25000,'%Energy Losses=%.2f'%pEW, clip_on=True) 
    23 
    24 plt.legend(handles=[TotEne,UsEne]) 

TypeError: not enough arguments for format string 

Wie füge ich eine wörtliche Prozentzeichen ("%") in einer matplotlib Figur mit einer interpolierten Zeichenfolge mit dem % Operator?

Antwort

2

drucken % Sie müssen es "%%" mit zu „entkommen“. Ändern Sie Ihren Code:

plt.text('2015-12-15',25000,'%%Energy Losses=%.2f'%pEW, clip_on=True) 
+1

i mit würde ' "Energieverluste = {: .2f}%". Format (PEW) zu' als eine andere mögliche Lösung –

+0

Ja, sollte der neue Stil viel einfacher zu lesen. –

+0

Vielen Dank! das funktioniert perfekt. –