【发布时间】:2020-09-05 23:41:17
【问题描述】:
首先,如果有人有一个很好的教程的链接,可以使用地理视图或全息视图创建 colomaps 并将其传输到仪表板,请发送链接。我试图模仿他们在the video here 中的时间戳所做的事情。除了他们网站上的几个例子之外,也很难找到好的地理视图文档,所以指向完整文档会很棒。
无论如何,我认为我有一个非常基本的情节。它是 x 的网格、y 的网格和 z 值的网格。我想在geoviews中绘制这个。它基本上包含来自 GPS 站的插值运动,我想制作 z 值的颜色图。我可以很容易地用 matplotlib 用一个简单的
plot = plt.scatter(mesh_x, mesh_y, c = z1, cmap = cm.hsv)
但尝试将其放入 geoviews 会产生一个非常时髦的数据框。
运行print(np.shape(mesh_x),np.shape(mesh_y), np.shape(z1)) 显示所有这些都是 (41,348) 的形状。如果我尝试将它们放入带有a = np.array((mesh_x,mesh_y,z1)) 的单个数组中,我会按预期得到一个形状为 (3,41,348) 的数组。从这里我真的只是在猜测该怎么做。当我尝试使用
points = [a[0], a[1], a[2]]
df = gv.Points(points)
df.dframe()
然后运行df.dframe(),它会显示两列,经度和纬度的值不正确,这是它显示的屏幕截图,如果它有帮助
我尝试转换为 xarray,因为它似乎在 geoviews 网站上显示的所有示例中都是首选,但它看起来也很时髦。当我尝试xrtest = xr.DataArray((mesh_x,mesh_y,z1)) 时,我得到一个看起来像这样 的xarray@
此时我不知道该怎么办。我尝试了几种不同的方法,虽然我可能会起作用,但我不记得所有这些方法。这就是我现在的位置。我确定我做错了什么,我只是不知道如何正确地做。谢谢
【问题讨论】:
-
我对你的问题有点困惑; gv.Points(如 plt.scatter)用于绘制点,但听起来您的数据是网格,而不是点? GeoViews 提供了几种不同的类来绘制网格,这取决于它们的规则程度;你的听起来可能像 TriMesh(但也可以考虑 Image 和 QuadMesh)。
-
我试过图像,它说图像类型需要网格数据,PandasInterface 是柱状的。要将柱状数据显示为网格,请使用 HeatMap 元素或聚合数据。当我转换为 numpy 数组时,它也是一样的。我使用 Points 是因为我使用 scatter 在 mpl 中绘制它们。
-
Image 用于可视化完全规则的网格数据,Quadmesh 用于可视化网格上但每个轴上的间距不规则的数据;两者都期望网格数据。 HeatMap 与 Image 类似,但允许使用分类轴,而不仅仅是数字。如果您拥有的只是任意位置的点列表,那么您可以使用 Points(请参阅单独的答案)或 TriMesh,两者都期望/接受柱状数据。
标签: python numpy python-xarray holoviews geoviews