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

在matplotlib中将x和y数据作为关键字参数传递?

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

在matplotlib中将x和y数据作为关键字参数传递?

只是为了扩展@Yann已经说过的内容:

要了解为什么会发生这种情况,您需要进一步了解matplotlib的结构。为了允许像这样的“ matlab-
isms”

plt.setp
并保持与旧版本python的兼容性,matplotlib避免使用属性,并且严重依赖于getter和setter。(
plot
实际上是最复杂的情​​况之一,仅仅是由于调用它支持的所有疯狂形式。)

您可以提出一个很好的论据,认为这是一种过时的,非Python的设计,但这并非重点。

plot(x, y,other=stuff)
调用时实际发生的情况(对于最简单的情况)是从前两个参数创建
plot
一个新
matplotlib.line.Line2D
对象,然后
matplotlib.line.Line2D.update(kwargs)
调用该对象。

update
基本上是这样的:

for key, value in kwargs.iteritems():    func = getattr(self, 'set_'+key)    func(value)

我过于简化了,但这是基本思想。

同样,可接受的关键字参数列表基本上是从具有的任何内容自动生成的

set_*
。由于
Line2D
具有
set_xdata
set_ydata
方法,它们显示在关键字参数列表中。

关键是,直到完成大多数的初始化之后

Line2D
,才可以实际使用关键字参数,并且,如果您不指定任何参数,
plot
则不会初始化任何
Line2D

您可以认为这是一个错误,但是我怀疑它是否会解决。我不认为

xdata
并且
ydata
曾经打算用作关键字参数。

set_xdata
并且
set_ydata
在那里可以让您快速更新
Line2D
实例,而不用创建一个新实例(用于动画等)。由于设置matplotlib的方式,它们恰好被允许作为关键字参数。



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

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

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