2017-11-29 3 views
2

텍스트 객체 또는 범례에서 matplotlib를 사용하여 파이썬의 플롯에 % 기호를 인쇄 할 수있는 방법이 있습니까?matplotlib의 "%"기호 Python

이 기본적인 예는, 원시 퍼센트 기호없이 예상대로 동작 : 텍스트를 말합니다이 경우

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() 

"에너지 손실을 =". 그러나 "Energy Losses = %"또는 "% Energy Losses ="를 표시 할 수있는 방법이 있는지 궁금합니다.

내가 그렇게하려고하면 TypeError가 발생합니다. 난 그냥 "%"문자를 문자 그대로 표시하고 싶습니다. 그래서이 일을 : 나는 % 연산자를 사용하여 보간 된 문자열과 함께하기 matplotlib 그림에서 리터럴 퍼센트 기호 ("%")를 포함하려면 어떻게

--------------------------------------------------------------------------- 
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 

:

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() 

이 오류를 발생시킵니다?

답변

2

%을 인쇄하려면 "%%"을 사용하여 "탈출"해야합니다. 내가 ''{: .2f} 에너지 손실 = % "를 사용하여 포함 할 것

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

:에 코드를 변경합니다. 형식 (PEW)'또 다른 잠재적 인 솔루션으로 –

+0

그래, 새 스타일이 훨씬 더 쉽게 읽을 수 있어야한다. –

+0

대단히 감사합니다! 이것은 완벽하게 작동합니다. –