python - 数据着色器为每个日期更改颜色
问题描述
对于带有数据着色器的散点图,我想将时间的概念合并到图中。可能通过使用颜色。
目前,
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_cat('c')
给你的.points()
电话,你应该得到一个按日期着色的图。
有关示例,请参见https://examples.pyviz.org/nyc_taxi/中的“pickup_hour”图。
推荐阅读
- python - 使用 SQLite 和 SQLAlchemy 查询格式化日期以获取用于绘制图形的月份和年份
- opengl - 一个 VBO 中的多个“精灵”
- python-3.x - 尽管正在执行自定义操作,但 RASA 自定义操作不适用于插槽
- sqlite - 如何正确获取数据库中的下一行
- spring - 关于 Spring JPA 支持哪一项是正确的
- microsoft-graph-api - Microsoft Graph:如何从消息中获取别名电子邮件
- datepicker - Blazor Webassembly BlazorDateRangePicker 组件仅在刷新页面后有效
- plaid - 如何获得格子开发证书(免费访问真实账户进行测试)?
- gsap - 使用带有 gsap 和 svg.js 的 getter 和 setter 对来自和对象的值进行动画处理
- javascript - SVG使用Javascript创建元素并且没有显示img