Plotly 中的 Seaborn HUE

Posted

技术标签:

【中文标题】Plotly 中的 Seaborn HUE【英文标题】:Seaborn HUE in Plotly 【发布时间】:2020-04-08 11:31:57 【问题描述】:

我有这个数据框Gas Price Brazil/ Data Frame 我只从这个 DF 获得汽油值,并想绘制每个地区 (REGIAO) 随时间 (YEARS - ANO) 的平均价格 (PREÇO MEDIO)

我将 Seaborn 与 HUE 一起使用并得到了这个:

但是当我尝试在 Plotly 上绘制相同的东西时,结果是:

如何使用 plotly 获得相同的情节?

我搜索并找到了这个:Seaborn Hue on Plotly

但这对我不起作用。

【问题讨论】:

欢迎来到论坛!您的问题很有趣,但您应该查看How to ask a good question 以增加获得有用答案的机会。特别是,您应该考虑这一点: 1. 绘图的屏幕截图应包含在问题本身中,而不是链接中。 2. 数据样本应作为 csv 文件的链接或作为问题本身的小样本提供。从不作为截图。 3. 应包含所有重现您的尝试所需的代码。 【参考方案1】:

答案:

您将使用 plotly express 和 color 属性实现相同的目的:

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 : 数据或向量数据中的变量名称,可选

将产生不同颜色的点的分组变量。能 可以是分类的或数字的,尽管颜色映射会表现 后一种情况不同。

您可以通过使用go.Scatter() 中的color 属性来实现相同的目的,但似乎您也可以充分利用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()

【讨论】:

非常感谢,简单快捷的解决方案。 当然,很抱歉之前没有检查,我还在学习论坛功能和行为方式:D @vinicvaz 没问题!我认为最重要的是提出问题,获得答案并提供反馈。一些人认为投票系统是绰绰有余的反馈。就我个人而言,我尽量确保不要在没有评论为什么的情况下投反对票。但我很少投反对票。如果问题有用,并且答案有助于解决方案,那么我总是会投赞成票。到目前为止,您已经获得了自己对帖子进行投票的权利。给予 600 票甚至可以获得奖励。

以上是关于Plotly 中的 Seaborn HUE的主要内容,如果未能解决你的问题,请参考以下文章

Plotly 中的相关热图

样式化 Seaborn 和 Plotly 热图

Seaborn/Plotly 多个 y 轴

Pandas+Seaborn+Plotly:联手探索苹果AppStore

python数据可视化(matplotlib,seaborn,plotly)

Seaborn 热图阴谋失败