91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Matplotlib庫基礎中如何自動調整函數

發布時間:2021-10-26 10:58:33 來源:億速云 閱讀:171 作者:柒染 欄目:編程語言

這篇文章給大家介紹Matplotlib庫基礎中如何自動調整函數,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

在matplotlib中,軸Axes的位置以標準化圖形坐標指定,可能發生的情況是軸標簽、標題、刻度標簽等等會超出圖形區域,導致顯示不全。Matplotlib v1.1 引入了一個新的命令tight_layout(),作用是自動調整子圖參數,使之填充整個圖像區域。

調用plt.show()函數時會自動運行tight_layout()函數,如下所示:

def show(self):
 self.figure.tight_layout()
 FigureCanvasAgg.draw(self)
 if PORT is None:
 return
 if matplotlib.__version__ < '1.2':
 buffer = self.tostring_rgb(0, 0)
 else:
 buffer = self.tostring_rgb()
 if len(set(buffer)) <= 1:
 # do not plot empty
 return
 render = self.get_renderer()
 width = int(render.width)
 plot_index = index if os.getenv("PYCHARM_MATPLOTLIB_INTERACTIVE", False) else -1
 try:
 sock = socket.socket()
 sock.connect((HOST, PORT))
 sock.send(struct.pack('>i', width))
 sock.send(struct.pack('>i', plot_index))
 sock.send(struct.pack('>i', len(buffer)))
 sock.send(buffer)
 except OSError as _:
 # nothing bad. It just means, that our tool window doesn't run yet
 pass

我們通過以下一個例程來介紹,最終的顯示效果如下所示:

fig = plt.figure(figsize=(12, 8))
ax1 = fig.add_subplot(211)
ax2 = fig.add_subplot(212)
ax1.plot(np.arange(10), np.random.randint(0, 10, 10), ls='-', c='r', lw=1)
ax2.plot(np.arange(10), np.random.randint(10, 20, 10), ls='-', c='y', lw=1)
plt.show()

Matplotlib庫基礎中如何自動調整函數

不過很多時候會出現tight_layout()不工作的情況,比如出現以下提示:
UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might be incorrect. warnings.warn("This figure includes Axes that are not compatible "
這個警告的原因是tight_layout這個函數出錯了,警告語句出現的原因時axes列表為空,tight_layout()中相應的代碼,如下所示:

subplotspec_list = get_subplotspec_list(self.axes)
if None in subplotspec_list:
 cbook._warn_external("This figure includes Axes that are not "
 "compatible with tight_layout, so results "
 "might be incorrect.")

可見這個函數并不太穩定。tight_layout不起作用的時候,繪圖效果如下所示,可見子圖并沒有填充整個圖像區域。

Matplotlib庫基礎中如何自動調整函數

網上搜索了下發現也有類似的情況出現,附上部分案例的截圖:

Matplotlib庫基礎中如何自動調整函數

接下來我們嘗試下解決方法,tight_layout在plt.savefig的調用方式相對比較穩定,我們將plt.show()函數替換為plt.savefig函數,替換后會在本地另外為png圖片,該圖片中子圖填充了整個圖像區域。

plt.savefig('fig.png', bbox_inches='tight') # 替換 plt.show()

關于Matplotlib庫基礎中如何自動調整函數就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南江县| 奉节县| 紫云| 白银市| 河东区| 开化县| 民乐县| 青铜峡市| 大关县| 南部县| 台州市| 乾安县| 台湾省| 景德镇市| 突泉县| 白河县| 蓬安县| 两当县| 芦溪县| 墨竹工卡县| 建德市| 遂宁市| 宝鸡市| 墨脱县| 广西| 三原县| 哈密市| 乡宁县| 图们市| 高安市| 巴东县| 茶陵县| 靖宇县| 普洱| 德江县| 潮安县| 东莞市| 建宁县| 台南市| 荥阳市| 阿克苏市|