爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 38915|回复: 11

[求助] python画风玫瑰图的风向标签与教程不一致

[复制链接]

新浪微博达人勋

发表于 2020-10-13 10:21:44 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
python新手入门,跟着教程学画风玫瑰图,明明是复制的程序,画出的图的风向的标签却不一样,教程是N,NE,E……,我画出的是0°,45°,90°……另外频次的显示也有问题,和教程简直差了一个数量级。有没有大神能解答一下出现问题的原因,程序和图片如下:
from windrose import WindroseAxes
from matplotlib import pyplot as plt
import numpy as np
ws = np.random.random(500) * 4
wd = np.random.random(500) * 360
ax = WindroseAxes.from_ax()
ax.bar(wd, ws, normed=True, opening=0.8, edgecolor='white')
ax.set_legend(loc=4, bbox_to_anchor=(1., -0.07))
plt.savefig('windrose_example')
plt.show()


我画的

我画的

教程例子

教程例子
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-10-13 10:36:32 | 显示全部楼层
ax.set_xticklabels(('E','NE','N','NW','W','SW','S','SE'))
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-10-13 10:45:42 | 显示全部楼层
edwardli 发表于 2020-10-13 10:36
ax.set_xticklabels(('E','NE','N','NW','W','SW','S','SE'))

老师您那本教材要出版了没有?气象出版社最新出的一本PYTHON的好像和您的不太一样
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-10-13 11:22:11 | 显示全部楼层
edwardli 发表于 2020-10-13 10:36
ax.set_xticklabels(('E','NE','N','NW','W','SW','S','SE'))

哇成功了,谢谢大佬。我又发现了点小问题,因为我一开始是E(90°)在最上面,所以直接设xtick会与数据不对应,我又去看了看别的经验贴,最后改成了:
ax.set_theta_zero_location('N')
ax.set_theta_direction(-1) #逆时针绘图
str=['N','NE','E','SE','S','SW','W','NW',]
ax.set_xticklabels(str)
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-10-22 20:26:04 | 显示全部楼层
请问你没有发现这样画的风玫瑰有错误吗?我发现用风速和风向数据画出来的图不对的
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-10-23 08:42:05 | 显示全部楼层
我也是第一次接触风玫瑰图,暂时还没发觉有什么错误,你可以贴出程序和图,我们一起学习一下。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-11-5 10:20:22 | 显示全部楼层
你好,有人告诉我这样画,方向好像旋转了90,我发现没问题呀
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-11-6 16:19:05 | 显示全部楼层
请问教程在哪里可以获得?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-11-25 20:49:51 | 显示全部楼层
本帖最后由 Eegle 于 2020-11-25 20:54 编辑

这样画出来的图 是错误的 但是我也还没找到正确的绘制方法如果是大于90°的-90 画出来的就刚好,但是小于90°的 就不能-90了
原理应该就是我们想从正北开始画,程序却从正东开始画
问题找到了 就想办法解决就是
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-11-29 16:01:00 | 显示全部楼层
对方的凤飞飞 发表于 2020-11-5 10:20
你好,有人告诉我这样画,方向好像旋转了90,我发现没问题呀

因为画极坐标系的图默认是从东开始画的,但是我们一般的玫瑰图是从北向开始画,所以需要添加一句
ax.set_theta_zero_location('N')
让0°出现在正北方向而不是正东方向
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表