Python 更改绘图仪中的颜色比例

Python 更改绘图仪中的颜色比例,python,plotly,Python,Plotly,我使用以下函数每年绘制一行数据(叠加,以便我可以将一年与其他年份进行比较)。我想得到的是,每一条线都有一个定义为渐变的颜色,而不是默认的颜色比例(即,2008年线为浅蓝色,2017年线为深蓝色) 正确的方法是什么?我尝试过使用colorscale参数(参见代码),但不太清楚它应该放在哪里 def plotPMByYear_plotly(df, minyear): allYears = list(set(list(df.Year))) allYears = [int(x) for

我使用以下函数每年绘制一行数据(叠加,以便我可以将一年与其他年份进行比较)。我想得到的是,每一条线都有一个定义为渐变的颜色,而不是默认的颜色比例(即,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')

经过一番挖掘,我找到了如下代码所示的解决方案:

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') 从颜色导入颜色 def PLOTPMBYEAR_plotly(df、minyear、color1、color2): df=df[df[“年”]>=minyear] allYears=列表(集合(列表(df.Year))) allYears=[如果str(x)!='nan',则所有年份中x的int(x)!] allYears.sort() 颜色=列表(颜色(颜色1)。范围从(颜色(颜色2),长度(所有年份))) 颜色=['rgb'+str(x.rgb)表示x的颜色] 数据=[] i=0 对于所有年份中的年份: yeardf=df[df[“Year”]==Year] trace=go.Scatter( x=年[Month'], y=yeardf[“值”], 模式='行', marker=dict(color=colors[i]), 姓名=年份 ) i+=1 data.append(跟踪) 布局=开始。布局( 标题=‘同比比较’ ) 图=开始图(数据=数据,布局=布局) iplot(图,filename='line-mode') 例如,对于以下参数,这将起作用:

plotPMByYear_plotly(dfM, 2008,'white','red') plotPMByYear_plotly(dfM,2008,“白色”和“红色”)
您需要在
Scatter
对象中手动设置颜色,例如
line=dict(颜色='rgb(0,0,167)
并获得自己的颜色范围生成器函数。