gpt4 book ai didi

python - 如何在 Matplotlib 中选择具有日期时间坐标的点?

转载 作者:太空宇宙 更新时间:2023-11-04 06:08:41 25 4
gpt4 key购买 nike

我正在尝试实现 this lasso selection ,但我得到:

  ...
File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 1481, in add_collection
self.update_datalim(collection.get_datalim(self.transData))
File "C:\Python27\lib\site-packages\matplotlib\collections.py", line 185, in get_datalim
offsets = np.asanyarray(offsets, np.float_)
File "C:\Python27\lib\site-packages\numpy\core\numeric.py", line 372, in asanyarray
return array(a, dtype, copy=False, order=order, subok=True)
TypeError: float() argument must be a string or a number

这可能是因为我的数据点的 x 坐标是 datetime.datetime 类型。

我试过:

xdata = xdata.astype('datetime64[us]').astype('float')

这消除了 TypeError,但是点永远不会被选中,即 contains_points 总是返回 Falses:

p = path.Path(verts)
ind = p.contains_points(self.xys)

如何使 collection 使用 datetime offsets

最佳答案

您的点未被选中的原因是 matplotlib 的内部日期表示与 numpy 的不同。 (Numpy 的 datetime dtype 非常新。Matplotlib 目前需要支持没有 datetime dtype 的 numpy 版本,所以 matplotlib 的内部日期表示还不能被删除。)

您传入的 xdata 会使用 matplotlib.dates.date2num 进行转换。只需将您的 xys 数据转换为相同的表示形式,事情就可以正常进行。 (稍后我会尝试发布一个完整的示例...)

关于python - 如何在 Matplotlib 中选择具有日期时间坐标的点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20222993/

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