0
在下面的代碼片段,我想百分號追加到一個陰謀的所有Y軸刻度標籤:matplotlib與Qt5Agg後端返回空ticklabels
import matplotlib as mpl
import pandas as pd
from matplotlib import pyplot as plt
print mpl.__version__, mpl.get_backend()
df = pd.DataFrame({'a': [10, 40], 'b': [20, 30]})
ax = df.plot(kind='bar', title='Plot of Percentage')
plt.draw()
ax.set_yticklabels([x.get_text() + '%' for x in ax.get_yticklabels()])
ax.get_figure().savefig('test.png', bbox_inches='tight')
在蟒蛇2.7.13 + matplotlib 1.5.3使用後端Qt5Agg,ax.get_yticklabels()
返回空Text
對象的列表,產生以下輸出圖像中:
上面代碼段可以正常工作下蟒2.6.9 +墊plotlib 1.4.2 + Qt4Agg後端和python 2.6.6 + matplotlib 1.3.1 + TkAgg後端。
可能涉及到:https://github.com/matplotlib/matplotlib/issues/6103/
這不是最佳的解決方案,但它的工作原理。在關閉窗口後將plt.draw()更改爲plt.show(),將修改後的標籤保存爲圖像 – eyllanesc
@eyllanesc:感謝您內聯圖像。我嘗試用plt.show()替換sivefig行,但它似乎不起作用。我錯過了其他任何環境嗎? –
進口matplotlib如MPL 進口熊貓作爲PD 從matplotlib進口pyplot作爲PLT 打印(MPL .__ version__,mpl.get_backend()) DF = pd.DataFrame({ 'A':[10,40],' b':[20,30]}) ax = df.plot(kind ='bar',title ='Plot of Percentage') plt.show() ax.set_yticklabels([x.get_text()+' %'for x in ax.get_yticklabels()]) ax.get_figure()。savefig('test.png',bbox_inches ='tight') – eyllanesc