簡體   English   中英

如何從 matplotlib 莖圖中刪除莖線?

[英]How to remove stemline(s) from a matplotlib stem plot?

這是在 matplotlib 中創建莖圖的示例腳本。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt
import numpy as np

# returns 10 evenly spaced samples from 0.1 to 2*PI
x = np.linspace(0.1, 2 * np.pi, 10)

fig, ax = plt.subplots( figsize=(4.,3.), constrained_layout=True)
markerline, stemline, baseline = ax.stem(x, np.cos(x), '-.', use_line_collection=True)
markerline1, stemline1, baseline1 = ax.stem(x, np.cos(x*5), '-', use_line_collection=True)

plt.setp(baseline, color='black', linewidth=2)
plt.setp(baseline1, color='black', linewidth=2)
plt.setp( stemline, color="green" )
plt.setp( stemline1, color="red" )

plt.show()

一季度。 創建這些圖后,我想刪除例如markerline1stemline1baseline1 我如何刪除它們?

Q2。 如果我想刪除從整個干情節ax ,不影響其他設置ax ,我該怎么辦呢? 我發現ax.clear()ax刪除了所有內容。

根據 matplotlib,

用戶警告:在 Matplotlib 3.3 中,莖圖上的單個線條將作為 LineCollection 而不是單個線條添加。

此外, LineCollection似乎有一個名為segment的屬性,其中包含所有主干線的 x,y 信息。

Q3。 如何從axfig獲取LineCollection對象? 我正在探索修改LineCollection對象是否是回答我的第一個問題的方法。

您可以使用obj.remove()在繪圖后從繪圖中刪除對象,即markerline1.remove()等。

更多細節在這里

如果您之前為它們命名,則可以通過遍歷繪圖中的所有對象將其擴展到 Q2。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM