gpt4 book ai didi

python - 带日期轴的箭袋或倒钩

转载 作者:太空狗 更新时间:2023-10-30 01:09:24 28 4
gpt4 key购买 nike

绘制箭袋或倒钩的时间序列(日期)的标准方法是什么?我经常在 Pandas DataFrame 中有时间序列并像这样绘制它们:

plt.plot(df.index.to_pydatetime(), df.parameter)

这非常有效,x 轴可以被视为真正的日期,这对于格式化或设置带有 Datetime 对象的 xlim() 等非常方便。

以同样的方式将它与箭袋或倒钩一起使用会导致:

TypeError: float() argument must be a string or a number

这可以通过类似的东西来克服:

ax.barbs(df.index.values.astype('d'), np.ones(size) * 6.5, df.U.values, df.V.values, length=8, pivot='middle')
ax.set_xticklabels(df.index.to_pydatetime())

这行得通,但意味着我必须在任何地方将日期转换为 float ,然后手动覆盖标签。有没有更好的办法?

下面是一些类似于我的案例的示例代码:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

size = 10

wspd = np.random.randint(0,40,size=size)
wdir = np.linspace(0,360 * np.pi/180, num=size)
U = -wspd*np.sin(wdir)
V = -wspd*np.cos(wdir)

df = pd.DataFrame(np.vstack([U,V]).T, index=pd.date_range('2012-1-1', periods=size, freq='M'), columns=['U', 'V'])

fig, ax = plt.subplots(1,1, figsize=(15,4))

ax.plot(df.index.values.astype('d'), df.V * 0.1 + 4, color='k')
ax.quiver(df.index.values.astype('d'), np.ones(size) * 3.5, df.U.values, df.V.values, pivot='mid')
ax.barbs(df.index.values.astype('d'), np.ones(size) * 6.5, df.U.values, df.V.values, length=8, pivot='middle')

ax.set_xticklabels(df.index.to_pydatetime())

enter image description here

最佳答案

我最终使用了以下代码:

idx = mpl.dates.date2num(df.index)
ax.xaxis.set_major_formatter(mpl.dates.DateFormatter('%d-%m-%Y'))

ax.plot(idx, df.V * 0.1 + 4, 'o-',color='k')
ax.quiver(idx, np.ones(size) * 3.5, df.U.values, df.V.values, pivot='mid')
ax.barbs(idx, np.ones(size) * 6.5, df.U.values, df.V.values, length=8, pivot='middle')

关于python - 带日期轴的箭袋或倒钩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13950053/

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