Pandas?Matplotlib保存圖形時坐標軸標簽太長導(dǎo)致顯示不全問題的解決
前言
本篇博客主要解決在使用pandas繪制圖像并保存時,由于標簽太長,導(dǎo)致坐標軸上的標簽顯示不全的問題。剛遇到問題時調(diào)整了一下圖片大小,然鵝并沒有卵用,于是乎就檢索了一下問題,發(fā)現(xiàn)沒有解決pandas的。查詢無果后,查看了一下官方文檔,頓悟,這不就是matplotlib嘛,換了一個關(guān)鍵字再查詢,果然,就是。所以本篇同樣適用于解決matplotlib繪制圖像時出現(xiàn)的這個問題。
# 部分代碼
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')
1. 問題描述
使用pandas的DataFrame存儲數(shù)據(jù)并繪制圖像,橫坐標軸的標簽是ResNet20的各個layer的名字,像module.layer1.0.conv1.weight這樣,由于太長,導(dǎo)致繪制出來的圖像是這樣的:

坐標軸的標簽沒有顯示全,于是就嘗試改變圖像的大小:
# 改變下高度 ax = df_sparsity_tmp.iloc[0:-1].plot(kind='bar', figsize=[30,50], title="Sparse vs. Dense\n(element-wise)")
于是圖像就變成了下面這樣,雖然有效果,但圖片被拉長,依舊不美觀:

2. 問題原因
既然調(diào)整繪制圖像尺寸之后繪制出來的圖片依舊不符合預(yù)期,那就只能看看官方的文檔了----pandas.DataFrame.plot(),看看是不是還有其他參數(shù),能夠使圖像的大小及位置不變,坐標軸的繪制空間適當(dāng)調(diào)整。然后就發(fā)現(xiàn)了這個:

函數(shù)返回了一個matplotlib.axes.Axes,既然是matlitplot,那問題就很容易解決了,matplotlib老搞這樣的事。查看一下matplotlib的文檔----matplotlib.pyplot.savefig(),可以看到:

默認情況下,僅保存圖形給定的部分,如果設(shè)置為tight,將嘗試保存更緊致的圖形。
4. 解決方法
在保存圖形是加入bbox_inches參數(shù):
# 設(shè)置tight bbox
fig.savefig('output.png', bbox_inches='tight')
再次保存圖形,此時的就很ok了:

結(jié)束語
到此這篇關(guān)于Pandas Matplotlib保存圖形時坐標軸標簽太長導(dǎo)致顯示不全問題解決的文章就介紹到這了,更多相關(guān)Pandas Matplotlib保存圖形顯示不全內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python heic后綴圖片文件轉(zhuǎn)換成jpg格式的操作
這篇文章主要介紹了python heic后綴圖片文件轉(zhuǎn)換成jpg格式的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
python通過安裝itchat包實現(xiàn)微信自動回復(fù)收到的春節(jié)祝福
這篇文章主要介紹了python通過安裝itchat包實現(xiàn)微信自動回復(fù)收到的春節(jié)祝福,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧2020-01-01
python 統(tǒng)計數(shù)組中元素出現(xiàn)次數(shù)并進行排序的實例
今天小編就為大家分享一篇python 統(tǒng)計數(shù)組中元素出現(xiàn)次數(shù)并進行排序的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07
Python使用StringIO和BytesIO讀寫內(nèi)存數(shù)據(jù)
這篇文章介紹了Python使用StringIO和BytesIO讀寫內(nèi)存數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05
報錯No?module?named?numpy問題的解決辦法
之前安裝了Python,后來因為練習(xí)使用Python寫科學(xué)計算的東西,又安裝了Anaconda,但是安裝Anaconda之后又出現(xiàn)了一個問題,下面這篇文章主要給大家介紹了關(guān)于報錯No?module?named?numpy問題的解決辦法,需要的朋友可以參考下2022-08-08

