簡體   English   中英

plotly 中兩個相同顏色的線圖

[英]Two line-plots with the same color in plotly

我對plotly很安靜,通常使用matplotlib 但是,這次我必須使用plotly (由於dash )。 我想要的matplotlib非常簡單,但我不明白它與plotly一起使用:同一圖中的兩條線具有相同的顏色。

使用matplotlib ,這將如下所示:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot([0, 1, 2, 4], [0, 1, 2, 3], color='black')
ax.plot([0, 1, 2, 4], [10, 9, 8, 7], color='black')

但是,我很難控制plotly中的顏色。 如何使用plotly獲得上述結果? 我嘗試了一種解決方法,它給了我兩條顏色相同的線,但不是我想要的顏色(黑色):

import numpy as np
import pandas as pd
import plotly.express as px

df = pd.DataFrame({'x': [0, 1, 2, 4], 'y1': [0, 1, 2, 3], 'y2': [10, 9, 8, 7]})
fig = px.line(df, x='x', y=['y1', 'y2'], color=np.ones(len(df))

結果應如下所示:

在此處輸入圖像描述

我知道為兩條線使用相同的顏色通常是“不好的做法”。 但是,在這種特定情況下並非如此; 我想 plot 一些自定義邊界,即 function 作為要添加到圖中的其他數據的參考。

額外:這些行不應包含在圖例中。 但是,我想在這些行之間使用 plot 2D 數據,我想對其使用一些顏色編碼。 這種顏色編碼最好在圖例中/作為顏色條添加。

非常感謝您的幫助!

由於 Plotly文檔沒有描述所需的 output,請盡量避免color變量。

例如:

import plotly.express as px

df = px.data.gapminder().query("continent=='Oceania'")
fig = px.line(df, x="year", y="lifeExp")
fig.show()

給出這個 output:

輸出

  • plotly express默認為每條跡線從顏色序列中分配顏色
  • 當您將列表長度為 2 的列傳遞給 y時,您的圖中有兩條跡線
  • 最簡單的方法是使用update_traces()覆蓋分配的顏色
import numpy as np
import pandas as pd
import plotly.express as px

df = pd.DataFrame({'x': [0, 1, 2, 4], 'y1': [0, 1, 2, 3], 'y2': [10, 9, 8, 7]})
fig = px.line(df, x='x', y=['y1', 'y2']).update_traces(line_color="black", showlegend=False)

fig

暫無
暫無

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

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