我正在Google上尝试使用Datashader来可视化一个大的经度和纬度数据集,这些经度和纬度的颜色都是对数的,但我的代码却抛出了一个完全空白的输出。
以文本表示的代码:
import datashader as ds
import pandas as pd
import colorcet
data = pd.read_csv('hab.csv', usecols=['longitude','latitude'])
cvs = ds.Canvas()
agg = cvs.points(data, 'latitude', 'longitude')
ds.tf.set_background(ds.tf.shade(agg, cmap=colorcet.fire, how='log'))我在Colab上看到的是:

发布于 2022-06-10 20:59:05
我不是collab用户,但是是的,当我在本地运行您的代码时,显示了五个数据点,我得到了一个空白的图。在我的本地版本中,这是因为代码指定了一个颜色映射,其最高值为白色,对于几个零散点,每个点的值都是最高的。代码使用set_background,可能会尝试将背景设置为适合于该颜色映射的黑色,但它没有指定“黑色”,因此set_background调用什么也不做。如果我指定背景颜色并添加Datashader扩展,以便更容易看到这些单个数据点,则可以从您的代码中得到一个图:

cvs = ds.Canvas()
agg = cvs.points(data, 'latitude', 'longitude')
ds.tf.set_background(ds.tf.shade(ds.tf.spread(agg, px=10), cmap=colorcet.fire, how='log'), "black")

你可能还有其他的问题,但是,因为你展示的情节不仅仅是白色的,它看起来是透明的。如果您的数据集确实很大,那么无论如何您都应该看到输出,因为数据点会重叠并使用颜色图中的所有颜色。
https://stackoverflow.com/questions/72526872
复制相似问题