python - Plotly 中的 Seaborn HUE

标签 python pandas matplotlib plotly seaborn

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

我将 Seaborn 与 HUE 结合使用并得到了这个:

Seaborn Plot

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

Plotly Plot

我怎样才能得到与plotly相同的 plotly ?

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

但这对我不起作用。

最佳答案

答案:

您将使用 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 : name of variables in data or vector data, optional

Grouping variable that will produce points with different colors. Can be either categorical or numeric, although color mapping will behave differently in latter case.

你可以通过在 go.Scatter() 中使用 color 属性来实现同样的事情,但看起来你可以很好地利用 plotly .express 也是。在您提供适当的数据样本之前,我将向您展示如何使用 numpy 在数据框中使用一些样本数据来做到这一点。和 pandas .

剧情:

enter image description here

代码:

# 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()

关于python - Plotly 中的 Seaborn HUE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59349237/

相关文章:

python - Pytest:使用不同的输入数据多次运行测试

python - 检查 csv 文件中的输入

python - 根据组过滤 DataFrame 行

Python:如何找到分隔两个不同集群的值?

matplotlib - 在 matplotlib 子图中绘制多个图像文件

python - 从文本文件复制并将编号的行写入另一个文件

python - 如何增强从多个 CSV 文件中查找的脚本

Python - 迭代 list.append 的结果

python - 应用于 groupby 的 first/count 返回空数据框

python - 如何在运行多线程计算然后绘制发出的结果时防止崩溃