如何使用plotly express创建子图

gcmastyq  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(535)

如果你和我一样,你喜欢plotly express,但是当你遇到express返回的数字不能使用'make\u subplots()'的问题时感到沮丧,因为make\u subplots只接受痕迹而不是数字。在这篇文章中,我想分享我自己的解决方案,我如何创建一个子图包含两种不同类型的图形(如下所示),只使用plotly express(和plotly.subplots)

vjhs03f7

vjhs03f71#

解决方案:

import plotly.express as px
import plotly.subplots as sp

# Create figures in Express

figure1 = px.line(my_df)
figure2 = px.bar(my_df)

# For as many traces that exist per Express figure, get the traces from each plot and store them in an array.

# This is essentially breaking down the Express fig into it's traces

figure1_traces = []
figure2_traces = []
for trace in range(len(figure1["data"])):
    figure1_traces.append(figure1["data"][trace])
for trace in range(len(figure2["data"])):
    figure2_traces.append(figure2["data"][trace])

# Create a 1x2 subplot

this_figure = sp.make_subplots(rows=1, cols=2) 

# Get the Express fig broken down as traces and add the traces to the proper plot within in the subplot

for traces in figure1_traces:
    this_figure.append_trace(traces, row=1, col=1)
for traces in figure2_traces:
    this_figure.append_trace(traces, row=1, col=2)

# the subplot as shown in the above image

final_graph = dcc.Graph(figure=this_figure)

由于我正在处理的项目数据的敏感性,我无法共享程序输出的实际图像,但它看起来与上图中的完全相同。据我测试,这应该与任何明确的数字。
我希望这对一些人有用。大家好!

相关问题