您好,登錄后才能下訂單哦!
這篇文章主要介紹“Pandas Matplotlib保存圖形時坐標軸標簽太長導致顯示不全如何解決”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Pandas Matplotlib保存圖形時坐標軸標簽太長導致顯示不全如何解決”文章能幫助大家解決問題。
適用于解決matplotlib
繪制圖像時出現的這個問題。
# 部分代碼 df_sparsity = distiller.weights_sparsity_summary(resnet20) df_sparsity_tmp = df_sparsity[['NNZ (dense)', 'NNZ (sparse)']] ax = df_sparsity_tmp.iloc[0:-1].plot(kind='bar', figsize=[30,10], title="Sparse vs. Dense\n(element-wise)") ax.set_xticklabels(df_sparsity.Name, rotation=90) fig = ax.get_figure() fig.savefig('output.png')
使用pandas
的DataFrame
存儲數據并繪制圖像,橫坐標軸的標簽是ResNet20
的各個layer
的名字,像module.layer1.0.conv1.weight
這樣,由于太長,導致繪制出來的圖像是這樣的:
坐標軸的標簽沒有顯示全,于是就嘗試改變圖像的大小:
# 改變下高度 ax = df_sparsity_tmp.iloc[0:-1].plot(kind='bar', figsize=[30,50], title="Sparse vs. Dense\n(element-wise)")
于是圖像就變成了下面這樣,雖然有效果,但圖片被拉長,依舊不美觀:
既然調整繪制圖像尺寸之后繪制出來的圖片依舊不符合預期,那就只能看看官方的文檔了----pandas.DataFrame.plot(),看看是不是還有其他參數,能夠使圖像的大小及位置不變,坐標軸的繪制空間適當調整。然后就發現了這個:
函數返回了一個matplotlib.axes.Axes
,既然是matlitplot
,那問題就很容易解決了,matplotlib
老搞這樣的事。查看一下matplotlib
的文檔----matplotlib.pyplot.savefig(),可以看到:
默認情況下,僅保存圖形給定的部分,如果設置為tight
,將嘗試保存更緊致的圖形。
在保存圖形是加入bbox_inches
參數:
# 設置tight bbox fig.savefig('output.png', bbox_inches='tight')
再次保存圖形,此時的就很ok了:
關于“Pandas Matplotlib保存圖形時坐標軸標簽太長導致顯示不全如何解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。