【问题标题】:data shader change color for each date数据着色器为每个日期更改颜色
【发布时间】:2020-08-01 01:11:51
【问题描述】:

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

目前,

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')

给予

但是现在无法区分不同的日期。 绘图时如何包含日期信息(例如使用颜色)?

【问题讨论】:

    标签: python plot holoviews histogram2d datashader


    【解决方案1】:

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

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

    有关示例,请参见 https://examples.pyviz.org/nyc_taxi/ 中的“pickup_hour”图。

    【讨论】:

    • input must be categorical - 即使使用字符串作为数据类型。但是当使用 pandas categorical 时,它也会失败。
    • 不确定在这种情况下失败是什么意思。是的,您确实需要在该列上使用.astype("category"),并且可能更好的例子是datashader.org/getting_started/Pipeline.html 上的“aggc”。如果您可以成功运行该示例,那么大概您可以使上面的示例正常工作,因为它非常相似。
    • 好的 - 更进一步。现在我需要修复:`为可用的分类字段(63)提供的颜色不足(22)`
    • github.com/holoviz/datashader/issues/767 正在解决这个问题 - 有点。但是现在缺少一个很好的图例来解释类别和颜色的映射。
    • 我们正在努力为 HoloViews 中散景渲染的 Datashader 分类图等颜色键提供适当的支持,但可能需要数周或数月才能实现,因为我们有很多其他类似但更容易完成的任务。同时,holoviews.org/user_guide/Large_Data.html 展示了如何伪造这样的传奇。
    猜你喜欢
    • 2019-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多