栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将Matplotlib轮廓限制/屏蔽到数据区域

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将Matplotlib轮廓限制/屏蔽到数据区域

如对这个问题的回答所示,可能会引入一种条件来掩盖这些值。

问题中的句子 “我不希望griddata在x和y数据的最小值和最大值所给定的边界之外进行插值”。 表示存在一些最小/最大条件,可以使用。

如果不是这种情况,可以使用一条路径裁剪轮廓。需要指定此路径的点,因为没有通用的方法可以知道哪些点应为边。下面的代码针对三种可能的路径执行此操作。

import matplotlib.pyplot as pltfrom matplotlib.path import Pathfrom matplotlib.patches import PathPatchfrom matplotlib.mlab import griddataimport numpy as npimport pandas as pddf = pd.Dataframe({'x':[0, 0, 1, 1, 3, 3, 3, 4, 4, 4],         'y':[0, 1, 0, 1, 0.2, 0.7, 1.4, 0.2, 1.4, 2],         'z':[50, 40, 40, 30, 30, 30, 20, 20, 20, 10]})x = df['x']y = df['y']z = df['z']xi = np.linspace(x.min(), x.max(), 100)yi = np.linspace(y.min(), y.max(), 100)z_grid = griddata(x, y, z, xi, yi, interp='linear')clipindex = [ [0,2,4,7,8,9,6,3,1,0],   [0,2,4,7,5,8,9,6,3,1,0],   [0,2,4,7,8,9,6,5,3,1,0]]fig, axes = plt.subplots(ncols=3, sharey=True)for i, ax in enumerate(axes):    cont = ax.contourf(xi, yi, z_grid, 15)    ax.scatter(x, y, color='k') # The original data points    ax.plot(x[clipindex[i]], y[clipindex[i]], color="crimson")    clippath = Path(np.c_[x[clipindex[i]], y[clipindex[i]]])    patch = PathPatch(clippath, facecolor='none')    ax.add_patch(patch)    for c in cont.collections:        c.set_clip_path(patch)plt.show()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/652897.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号