python - Plotly 中的 Seaborn HUE
问题描述
我有这个数据框Gas Price Brazil /
Data Frame
我只从这个 DF 获得汽油值,并想绘制每个地区 (REGIAO) 随时间 (YEARS - ANO) 的平均价格 (PREÇO MEDIO)
我将 Seaborn 与 HUE 一起使用并得到了这个:
但是当我尝试在 Plotly 上绘制相同的东西时,结果是:
如何使用 plotly 获得相同的情节?
我搜索并找到了这个:Seaborn Hue on Plotly
但这对我不起作用。
解决方案
答案:
color
您将使用 plotly express 和属性实现相同的目的:
fig = px.line(dfm, x="dates", y="value", color='variable')
细节:
您还没有详细描述数据的结构,但是像这样分配色调通常意味着应用于数据结构,例如......
Date Variable Value
01.01.2020 A 100
01.01.2020 B 90
01.02.2020 A 110
01.02.2020 B 120
...其中唯一的色调或颜色分配给与时间戳列相关联的不同变量名称,其中每个时间戳出现的次数与变量的数量一样多。
seaborn似乎也是如此:
hue : 数据或向量数据中的变量名称,可选
将产生具有不同颜色的点的分组变量。可以是分类的或数字的,尽管在后一种情况下颜色映射的行为会有所不同。
color
您可以通过使用 in 中的属性来实现相同的目的go.Scatter()
,但似乎您也可以很好地利用它plotly.express
。在您提供适当的数据样本之前,我将向您展示如何使用numpy和pandas使用数据框中的一些采样数据来做到这一点。
阴谋:
代码:
# imports
import numpy as np
import pandas as pd
import plotly.express as px
# sample time series data
np.random.seed(123)
df = pd.DataFrame(np.random.randint(-10,12,size=(50, 4)), columns=list('ABCD'))
datelist = pd.date_range(pd.datetime(2020, 1, 1).strftime('%Y-%m-%d'), periods=50).tolist()
df['dates'] = datelist
df = df.set_index(['dates'])
df.index = pd.to_datetime(df.index)
df.iloc[0]=0
df=df.cumsum().reset_index()
# melt data to provide the data structure mentioned earlier
dfm=pd.melt(df, id_vars=['dates'], value_vars=df.columns[1:])
dfm.set_index('dates')
dfm.head()
# plotly
fig = px.line(dfm, x="dates", y="value", color='variable')
fig.show()
推荐阅读
- java - 有空字段时创建对话框
- sql - 为什么使用 LEFT JOIN 语法比 (+) 慢
- java - 如何使用apache poi检查excel中的单元格值是否包含alt+enter?
- sql - 如何在不添加新行的情况下选择插入来选择主键列中已有值的表?
- php - 减小 ffmpeg 转换视频的文件大小
- python - 熊猫多索引列合并某些列
- python - 如何从仅日期时间的数据中绘制折线图
- javascript - 用于计算的 JavaScript 函数不起作用?
- ios - Cocoapods - FirebaseAnalytics 仅在使用 FirebaseCore 时安装
- .net-core - 为什么用类声明比结构体占用更多的内存?