首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在matplotlib.axes.Axes.arrow python2.7中使用kwargs

如何在matplotlib.axes.Axes.arrow python2.7中使用kwargs
EN

Stack Overflow用户
提问于 2017-12-27 19:42:53
回答 1查看 7.7K关注 0票数 2

我在arrow_simple_demo.py 这里工作,我已经将其修改为:

代码语言:javascript
复制
import matplotlib.pyplot as plt

ax = plt.axes()
ax.arrow(0, 0, 0.5, 0.5, head_width=0.05, head_length=0.1)

但是,我想将箭头的线条样式更改为使用kwarg虚线。箭头文档表明这是可能的。箭头文档

因此,我尝试给箭头**kwargs参数导入:

代码语言:javascript
复制
kwargs = {linestyle:'--'}

现在我的代码如下所示:

代码语言:javascript
复制
import matplotlib.pyplot as plt

ax = plt.axes()
kwargs={linestyle:'--'}
ax.arrow(0, 0, 0.5, 0.5, head_width=0.05, head_length=0.1, **kwargs)

但结果是:

代码语言:javascript
复制
NameError: name 'linestyle' is not defined

我想知道是否有人可以告诉我,我是否正确地使用了kwargs,以及是否需要从matplotlib的修补程序类中导入修补程序来实现这个功能。“其他有效的kwargs (继承自:class:Patch)”语句位于kwargs清单上方的箭头文档中,这使我认为这可能是必要的。我还一直在查看补丁文档来解决这个问题。这里

编辑:

当我将linestyle键作为字符串传递时,代码就完成了,但是我没有得到我所希望的虚线箭头行。

代码语言:javascript
复制
import matplotlib.pyplot as plt
ax = plt.axes()
kwargs={'linestyle':'--'}
ax.arrow(0, 0, 0.5, 0.5, head_width=0.05, head_length=0.1, **kwargs)

见图:

箭头图实线

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-27 19:53:45

kwargs字典的键应该是一个字符串。在您的代码中,python寻找一个名为linestyle的不存在的对象。

代码语言:javascript
复制
kwargs = {'linestyle':'--'}

不幸的是,做还不足以产生预期的效果。这条线是虚线的,但是问题是箭头是用一个封闭的路径画出来的,而划线是在另一个上面覆盖的,这就取消了这个效果。您可以通过绘制更厚的箭头来看到虚线。

代码语言:javascript
复制
ax = plt.axes()
kwargs={'linestyle':'--', 'lw':2, 'width':0.05}
ax.arrow(0, 0, 0.5, 0.5, head_width=0.05, head_length=0.1, **kwargs)

如果你想要一个简单的虚线箭头,你必须使用一个简单的箭头,使用annotate

代码语言:javascript
复制
ax = plt.axes()
kwargs={'linestyle':'--', 'lw':2}
ax.annotate("", xy=(0.5, 0.5), xytext=(0, 0),
    arrowprops=dict(arrowstyle="->", **kwargs))

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47997772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档