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

matplotlib中Windrose的子图

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

matplotlib中Windrose的子图

有两种解决方案:

(a)从矩形创建轴

首先,这里已经存在一个类似的问题:如何将特定轴添加到matplotlib子图中?

在那里,解决方案是在图中创建一个

rect
具有新子图轴坐标的矩形,然后调用
ax = WindroseAxes(fig, rect)

一个更容易理解的例子是

from windrose import WindroseAxesfrom matplotlib import pyplot as pltimport numpy as npws = np.random.random(500) * 6wd = np.random.random(500) * 360fig=plt.figure()rect=[0.5,0.5,0.4,0.4] wa=WindroseAxes(fig, rect)fig.add_axes(wa)wa.bar(wd, ws, normed=True, opening=0.8, edgecolor='white')plt.show()

(b)添加投影

现在创建该矩形可能会很烦人,并且能够使用matplotlib子图功能会更好。这里
提出的一个建议是将其注册为对matplotlib的投影。为此,需要在site-packages /
windrose中编辑文件windrose.py,如下所示:

WindroseAxes


  1. from matplotlib.projections import register_projection
    在文件的开头包括一个导入。
  2. 然后添加一个名称变量:

    class WindroseAxes(PolarAxes):name = 'windrose'...
  3. 最后,在windrose.py的末尾,添加:

    register_projection(WindroseAxes)

完成后,您可以使用matplotlib轴的projection参数轻松创建windrose轴:

from matplotlib import pyplot as pltimport windroseimport matplotlib.cm as cmimport numpy as npws = np.random.random(500) * 6wd = np.random.random(500) * 360fig = plt.figure()ax = fig.add_subplot(221, projection="windrose")ax.contourf(wd, ws, bins=np.arange(0, 8, 1), cmap=cm.hot)ax.legend(bbox_to_anchor=(1.02, 0))plt.show()


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

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

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