簡體   English   中英

更改繪圖折線圖中的色標

[英]change color scale in plotly line chart

我使用以下函數繪制每年數據的一條線(重疊以便我可以將一年與其他年份進行比較)。 我想要的是讓每條線的顏色定義為漸變而不是默認色標(即 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')

例如,它可以使用以下參數:

plotPMByYear_plotly(dfM, 2008,'white','red')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM