Python 数据着色器更改每个日期的颜色

Python 数据着色器更改每个日期的颜色,python,plot,holoviews,histogram2d,datashader,Python,Plot,Holoviews,Histogram2d,Datashader,对于带有datashader的散点图,我想将时间的概念合并到图中。可能是通过使用颜色 目前, import numpy as np import pandas as pd import seaborn as sns date_values = ['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-04'] result = [] for d in date_values: print(d) df = pd.DataFrame(n

对于带有datashader的散点图,我想将时间的概念合并到图中。可能是通过使用颜色

目前,

import numpy as np
import pandas as pd
import seaborn as sns

date_values = ['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-04']
result = []
for d in date_values:
    print(d)
    df = pd.DataFrame(np.random.randn(10000, 2), columns=list('AB'))
    df.columns = ['value_foo', 'value_bar']
    df['dt'] = d
    df['dt'] = pd.to_datetime(df['dt'])
    result.append(df)

df =  pd.concat(result)    
display(df.head())

import holoviews as hv
import holoviews.operation.datashader as hd
hv.extension("bokeh", "matplotlib") 

import datashader as ds
import datashader.transfer_functions as tf


cvs = ds.Canvas().points(df, 'value_foo', 'value_bar')
from colorcet import fire
#tf.set_background(tf.shade(cvs, cmap=fire),"black")
tf.shade(cvs)

#sns.jointplot(x="value_foo", y="value_bar", data=df, hue='dt')
给予

然而,现在不同的日期无法区分。
打印时如何包含日期信息(例如使用颜色)?

Datashader可以使用任何分类列进行着色。在这里,您只有四个不同的日期,这已经可以作为一个分类,但是如果您有很多日期,您首先要将它们划分为一组合适的日期范围(例如,如果您使用256色的颜色映射,则总值小于256)

无论哪种方式,一旦你有了一个分类列
c
,把
agg=ds.count\u cat('c')
传递给你的
.points()
调用,你应该得到一个按日期着色的绘图


有关示例,请参见中的“拾取时间”图。

输入必须是分类的
——即使使用字符串作为数据类型。但是当使用pandas Category时,它也失败了。不确定在这种情况下失败是什么意思。是的,您确实需要在该列中添加
.astype(“category”)
,而更好的示例可能是位于的“aggc”。如果你能成功地运行这个例子,那么你大概可以让上面的例子工作,因为它非常相似。现在我需要修正:`为可用的分类字段(63)提供的颜色不足(22)`正在解决这一问题——有点像。但是现在缺少了一个很好的图例,它解释了类别和颜色的映射。我们正在努力为颜色键提供适当的支持,比如HoloView中Bokeh渲染的Datashader类别图的颜色键,但可能需要几周或几个月的时间,因为我们还有很多其他类似但更容易的任务要首先完成。同时,展示了如何伪造这样的传奇。