如何从绘图中生成的 PolyCollection 中提取 x/y 数据fill_between
?
polyCollection = ax.fill_between(x,ylo,yhi)
Run Code Online (Sandbox Code Playgroud)
现在我如何从 获取数据polyCollection
?
对于其他Collection
对象,我使用x, y = artist.get_offsets().T
,但这里由于某种原因仅返回零。
对于“Line”类型的对象,我使用x, y = artist.get_xdata(), artist.get_ydata()
.
(我在回调中使用此信息来本地自动缩放 y 轴,以适应特定 x 范围内的数据。)
polyCollection.get_paths()
给出路径列表. 在本例中是一个包含一个元素的列表。从那里你可以得到Nx2 numpy 数组形式的顶点,并且有x
and y
:
from matplotlib import pyplot as plt
import numpy as np
N = 20
polyCollection = plt.fill_between(np.arange(0, N),
5 + np.random.normal(size=N).cumsum(),
10 + np.random.normal(size=N).cumsum(), color='lightblue', alpha=0.3)
points = polyCollection.get_paths()[0].vertices
xs = points[:, 0]
ys = points[:, 1]
plt.scatter(xs, ys, marker='o', color='crimson')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
600 次 |
最近记录: |