python - 使用具有日期时间维度的 xarray DataArray 中的数据着色器进行绘图
问题描述
我有一个二维的 xarray DataArray。一个维度是频率,另一个是时间。创建 DataArray 时,我指定坐标。
data = np.memmap(fname, np.float32, mode="c")
dx = xr.DataArray(data, coords=[dt,freqs], dims=["Time", "Frequency"])
我遇到的问题是,如果我将时间坐标 (dt) 定义为 pandas date_range 或 timedelta_range
times = pd.date_range("2020-10-13", periods=data.shape[0], freq='81.92U')
或者
times = pd.timedelta_range(start="0 millisecond", periods=data.shape[0], freq='81.92U')
数据着色器抛出错误
TypeError: Cannot cast ufunc less input from dtype('<m8[ns]') to dtype('<m8') with casting rule 'same_kind'
跑完之后
import datasahder as ds
cvs = ds.Canvas(plot_width=1000, plot_height=300)
agg = cvs.raster(dx.T, interpolate='linear')
img = tf.Images(tf.shade(agg, cmap=gray, name="linear interpolation (default)"))
但是,我可以将时间坐标指定为一个np.arange
对象,它具有int
类型并且工作正常。但是后来我从数组中丢失了日期时间信息。
有没有解决的办法?
解决方案
推荐阅读
- sql - RODBC 游标查询
- python - 从 Arduino 读取数据时 Python readline() 的问题
- python - 如何使用 python selenium 在文本框中插入值
- java - 如何确定用户的输入字符串是否向后读取(回文)JAVA
- java - 优化夜间模式系统
- javascript - Chrome 扩展 getElementById 返回 Null
- javascript - 为什么要使用退货号?
- c++ - 打开一个新的浏览器选项卡,而不会失去对使用 C++ 的当前应用程序的关注
- java - 如何使用 runOnUiThread 更新 TextView
- c# - 音乐停止播放时出现“值不在预期范围内”错误