matplotlib 1.3.1没有';不要使用Python软件包
更新到matplotlib 1.3.1后,它停止使用数量包。例如:matplotlib 1.3.1没有';不要使用Python软件包,python,matplotlib,Python,Matplotlib,更新到matplotlib 1.3.1后,它停止使用数量包。例如: import matplotlib.pyplot as plt import quantities as pq import numpy as np t = np.arange(0,10,0.1) * pq.sec x = np.arange(0,10,0.1)**2 * pq.m plt.plot(t,x) 带来一个长而丑陋的异常日志,以“调用Python对象时超过最大递归深度”结尾。matplotlib.units和带有数
import matplotlib.pyplot as plt
import quantities as pq
import numpy as np
t = np.arange(0,10,0.1) * pq.sec
x = np.arange(0,10,0.1)**2 * pq.m
plt.plot(t,x)
带来一个长而丑陋的异常日志,以“调用Python对象时超过最大递归深度”结尾。matplotlib.units和带有数量的数组的get_converter()方法似乎有问题
我发现解决问题的方法是:
plt.plot(t.magnitude,x.magnitude);
这很好,但我有相当多的脚本,我不想改变。有没有其他办法解决这个问题?这是一个令人讨厌的例外。不幸的是,除了修改数量或Matplotlib源代码之外,我想不出任何真正好的解决方案。我会将此作为bug发布到。我建议将其发布到Matplotlib而不是数量,因为Matplotlib v1.3.0似乎没有出现此问题,但这可能更容易在数量方面解决 所以我认为你有三个选择
x
更改为x.magnity
x.magnity
,也可以在使用x
单位的轴上放置标签,对单位进行任何转换(就像Matplotlib尝试做的那样),或者对单位执行任何其他操作只是为了文档。这个问题似乎是matplotlib pull请求#2591:并且在matplotlib 1.4.0中已经修复