繁体   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