Plotly:填充的绘图,没有重叠的填充颜色

2024-09-21 03:01:55 发布

您现在位置:Python中文网/ 问答频道 /正文

enter image description here

在图中,由于fill = 'tonexty',绿线会自动填充到从0(在x轴上)到其交点的红线,从而重叠红色和蓝色填充。然后,紫色线填充自己,直到绿色线重叠红色和蓝色。如何防止这些重叠

我只希望绿线在红线上方时才填充。紫色线会一直填充到它遇到的下一条最上面的线,这里是绿色和红色

作为参考,我希望它看起来像这样-

enter image description here

以下是重现绘图的代码-

import pandas as pd
import plotly.graph_objects as go

df = pd.DataFrame({'x': [0,1,2,3,4],
 'y1': [0,3,7,9,17],
 'y2': [0,5,8,11,21],
 'y3': [0,0,0,15,25],
 'y4': [0,10,20,30,40]})

fig = go.Figure()
fig.add_scatter(x=df.x, y=df.y1, fill='tozeroy', name='y1')
fig.add_scatter(x=df.x, y=df.y2, fill='tonexty', name='y2')
fig.add_scatter(x=df.x, y=df.y3, fill='tonexty', name='y3')
fig.add_scatter(x=df.x, y=df.y4, fill='tonexty', name='y3')
fig.update_xaxes(nticks=5)
fig.show()

这有点类似于this question。但是我不想在两行之间填充,而是在一行和可能遇到的许多其他行之间填充(所有与之相邻的行)


Tags: nameadddffigfill蓝色红色y1

热门问题