简体   繁体   English

如何用 plotly 绘制离散颜色

[英]How to plot discrete colours with plotly

My code so far:到目前为止我的代码:

fig2 = plotly.subplots.make_subplots(rows=3, cols=1, shared_xaxes=True)
fig2.append_trace(
        go.Scatter(x=df['Date_Time'], y=df["N2O_rSig"]), row=1, col=1)
                   
fig2.append_trace(                   
        go.Scatter(x=df['Date_Time'], y=df["Flow_rSig"]), row=2, col=1)
        
fig2.append_trace(   
        go.Scatter(x=df['Date_Time'], y=df["O2_rSig"]), row=3, col=1)
   
fig2.update_layout(title_text="Stacked Subplots")

fig2.write_html("test_plotly.html")

For each trace I want to have a discrete color governed by Valve_ai but I just can't seem to find the right way.对于每条轨迹,我都希望有一个由 Valve_ai 控制的离散颜色,但我似乎找不到正确的方法。 Is there a way without having to rebuild that way my data is sent to Plotly.graph_objects.有没有一种无需重建的方法,我的数据被发送到 Plotly.graph_objects。

I noticed Plotly Express has the ability to split long data based on the variable "color".我注意到 Plotly Express 能够根据变量“颜色”拆分长数据。 Cufflinks also manages this with categories. Cufflinks 还通过类别来管理这一点。 However I in order to manage Legends across multiple subplots Plotly.go seems like the only option.然而,我为了在多个子图上管理 Legends Plotly.go 似乎是唯一的选择。

Here is the example data这是示例数据

,Unnamed: 0,Date_Time,N,Valve_ai,N2O_rSig,NO_rSig,O2_rSig,CO2_rSig,Flow_rSig
48,57,2020-07-15 00:00:57,58,Bio1 G1,6.33,16.69,20.61,1.0,1.02
49,58,2020-07-15 00:00:58,59,Bio1 G1,6.13,16.62,20.61,1.0,0.96
50,59,2020-07-15 00:00:59,60,Bio1 G1,6.15,16.56,20.6,1.0,0.98
51,60,2020-07-15 00:01:00,61,Bio1 G1,6.12,16.55,20.59,1.0,0.86
52,61,2020-07-15 00:01:01,62,Bio1 G1,6.44,16.68,20.6,1.0,1.07
53,62,2020-07-15 00:01:02,63,Bio1 G1,6.69,16.63,20.59,1.0,0.94
54,64,2020-07-15 00:01:04,65,Bio1 G2,7.28,16.69,20.57,1.0,0.98
55,65,2020-07-15 00:01:05,66,Bio1 G2,7.98,17.06,20.49,1.0,1.05
56,66,2020-07-15 00:01:06,67,Bio1 G2,8.82,17.37,20.4,1.0,0.98
57,67,2020-07-15 00:01:07,68,Bio1 G2,10.03,17.78,20.26,1.0,0.9
58,68,2020-07-15 00:01:08,69,Bio1 G2,13.4,19.36,19.94,1.0,1.02
59,69,2020-07-15 00:01:09,70,Bio1 G2,15.55,20.68,19.77,1.0,0.85

So after a bit of looking around I found a direct comparison with bar graphs on the plotly website因此,经过一番环顾四周后,我发现了与plotly 网站上的条形图的直接比较

The following code allowed me to split up my Data Frame based on Valve and then iterate through each DF to create individual traces.下面的代码允许我基于 Valve 拆分我的数据帧,然后遍历每个 DF 以创建单独的跟踪。

for valve, group in df.groupby("Valve_ai"):
        fig.add_trace(go.Scatter(x=group["Date_Time"], y=group["N2O_rSig"], name=valve)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM