我使用以下函数绘制每年一行数据(覆盖以便我可以将一年与其他数据进行比较)。我想要的是每条线都有一个颜色定义为渐变而不是默认的色标(即2008年的浅蓝色系列到2017年的系列,深蓝色)。
这样做的正确方法是什么?我已经尝试过使用colorscale参数(参见代码),但是无法弄明白它的位置。
def plotPMByYear_plotly(df, minyear):
allYears = list(set(list(df.Year)))
allYears = [int(x) for x in allYears if str(x) != 'nan']
data = []
df = df[df["Year"]>=minyear]
for year in allYears:
yeardf = df[df["Year"] == year]
trace = go.Scatter(
x = yeardf['Month'],
y = yeardf['Value'],
mode = 'lines',
name = year
)
colorscale='Jet',
data.append(trace)
iplot(data, filename='line-mode')
答案 0 :(得分:1)
经过一番挖掘,我找到了解决方案,如下面的代码所示:
from colour import Color def plotPMByYear_plotly(df, minyear,color1,color2): df = df[df["Year"]>=minyear] allYears = list(set(list(df.Year))) allYears = [int(x) for x in allYears if str(x) != 'nan'] allYears.sort() colors = list(Color(color1).range_to(Color(color2),len(allYears))) colors = ['rgb'+str(x.rgb) for x in colors] data = [] i = 0 for year in allYears: yeardf = df[df["Year"] == year] trace = go.Scatter( x = yeardf['Month'], y = yeardf['Value'], mode = 'lines', marker=dict(color=colors[i]), name = year ) i+=1 data.append(trace) layout = go.Layout( title = 'Year on Year comparison' ) fig = go.Figure(data=data, layout=layout) iplot(fig, filename='line-mode')
例如可以使用以下参数:
plotPMByYear_plotly(dfM, 2008,'white','red')