繁体   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