gpt4 book ai didi

python - Windrose axespad 的意思

转载 作者:太空狗 更新时间:2023-10-30 02:30:23 26 4
gpt4 key购买 nike

我是 Python 新手,正在尝试使用可在以下网站找到的 windrose.py 代码创建风向玫瑰:http://sourceforge.net/projects/windrose/

以下是我正在运行的代码,我在以下网站找到了示例代码: http://youarealegend.blogspot.com/search/label/windrose

import numpy

from windrose import WindroseAxes
from matplotlib import pyplot as plt
import matplotlib.cm as cm
from numpy.random import random
from numpy import arange
import windrose as wr


import matplotlib.pyplot as mp
import windrose

#Create wind speed and direction variables
ws = random(500)*6
wd = random(500)*360


#A quick way to create new windrose axes...
def new_axes():
fig = plt.figure(figsize=(8, 8), dpi=80, facecolor='w', edgecolor='w')
rect = [0.1, 0.1, 0.8, 0.8]
ax = WindroseAxes(fig, rect, axisbg='w')
fig.add_axes(ax)
return ax

#...and adjust the legend box
def set_legend(ax):
l = ax.legend(axespad=-0.10)
plt.setp(l.get_texts(), fontsize=8)

wr.wrcontourf(wd, ws)

当我运行这段代码时,出现以下错误:

RuntimeWarning: invalid value encountered in rint
return round(decimals, out)

TypeError: __init__() got an unexpected keyword argument 'axespad'

虽然我已经尝试了很多事情,但我无法弄清楚 axespad 变量在这段代码中做了什么。任何建议都会有所帮助!

最佳答案

尝试改变这一行:

l = ax.legend(axespad=-0.10)

为此:

l = ax.legend(borderaxespad=-0.10)

一些背景:

随着我的好奇心被激起,我决定去冒险一下。

根据matplotlib documentation , axespad 不是 legend 函数的有效参数,但 borderaxespad 是。我还注意到您链接到的文章使用的是 matplotlib 0.98.3,这是一个非常过时的版本(事实上,它的文档不再可用)。

根据直觉,我从 here 下载了旧源代码, 来自 here 的新来源, 并比较两者。

原来 matplotlib 0.98.3 只引用了 axespadmatplotlib 1.4.2 只引用了 borderaxespad。它们所在的代码几乎完全相同。看起来他们在某个时候向 Legend 添加了边框功能,并决定相应地重命名参数。

关于python - Windrose axespad 的意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27451858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com