Python 海本色调

Python 海本色调,python,pandas,matplotlib,plotly,seaborn,Python,Pandas,Matplotlib,Plotly,Seaborn,我有这个数据框/ 我只从这个DF中得到汽油值,并想绘制每个地区(REGIAO)随时间(年-ANO)的平均价格(PREčO MEDIO) 我用了Seaborn和色调,得到了这个: 但当我尝试在Plotly上绘制相同的东西时,结果是: 我怎样才能用plotly获得相同的绘图 我搜索并发现: 但这对我不起作用 答案是: # imports import numpy as np import pandas as pd import plotly.express as px # sample ti

我有这个数据框/
我只从这个DF中得到汽油值,并想绘制每个地区(REGIAO)随时间(年-ANO)的平均价格(PREčO MEDIO)

我用了Seaborn和色调,得到了这个:

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

我怎样才能用plotly获得相同的绘图

我搜索并发现:


但这对我不起作用

答案是:

# 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()
使用plotly express和
color
属性可以实现同样的效果:

fig = px.line(dfm, x="dates", y="value", color='variable')
详细信息:

# 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()
您还没有详细描述数据的结构,但是像这样指定色调通常意味着要应用于数据结构,例如

Date    Variable    Value
01.01.2020    A    100
01.01.2020    B    90
01.02.2020    A    110
01.02.2020    B    120
。。。将唯一色调或颜色指定给与时间戳列关联的不同变量名,其中每个时间戳出现的次数与变量出现的次数相同

这似乎也适用于:

色调:数据或矢量数据中变量的名称,可选

分组变量,该变量将生成具有不同颜色的点。可以 可以是分类的,也可以是数字的,尽管颜色映射会起作用 后一种情况则不同

通过使用
go.Scatter()
中的
color
属性,您可以实现同样的效果,但您似乎也可以很好地利用
plotly.express
。在您提供正确的数据样本之前,我将向您展示如何使用和在数据帧中使用一些采样数据

绘图:

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

代码:

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

欢迎来到论坛!你的问题很有趣,但你应该仔细研究一下,以增加获得有用答案的机会。特别是,你应该考虑:1。问题本身应该包括情节的截图,而不是链接。2.数据样本应作为csv文件的链接或问题本身的小样本提供。从来都不是截图。3.应包括所有复制您的尝试所需的代码。非常感谢,简单而快速的解决方案。当然,很抱歉之前没有检查,我仍在学习论坛功能以及如何操作:D@vinicvaz没问题!我认为最重要的是问一个问题,得到一个答案并给出反馈。SOM认为投票制度要多于足够的反馈。就我个人而言,我尽量确保不会在没有说明原因的情况下投反对票。但我很少放弃投票。如果问题有用,答案有助于解决问题,那么我总是投赞成票。到现在为止,你已经赢得了自己的投票权。给予600票甚至可以为你赢得一份奖励。