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的主要内容,如果未能解决你的问题,请参考以下文章
Pandas+Seaborn+Plotly:联手探索苹果AppStore