如何在 plotly 中使用聚合绘制箱线图?

How to plot a boxplot using aggregates in plotly?

我需要根据数值空气质量模型的结果绘制一系列箱线图。由于这是大量数据,每次当新模型结果准备好并将它们存储在 PostgreSQL 中时,我都会触发聚合计算(最小值、最大值、四分位数等)。出于可视化目的,我将聚合加载到 pandas 中,并使用破折号绘制它们。我能够绘制时间序列的线图,但是我想得到类似 this example 的东西,但也是交互式的。

当我浏览 plotly 示例时,看起来它总是需要原始数据来绘制箱线图 (https://plot.ly/python/box-plots/#basic-box-plot)。我真的很喜欢表示和逻辑分离的概念。是否可以根据聚合数据得到一个 plotly 箱线图?

您可以通过以下格式将聚合值提供给 Python 中的 Plotly 箱线图:

plotly.graph_objs.Box(y=[val_min, 
                         val_lower_box, 
                         val_lower_box, 
                         val_median, 
                         val_upper_box, 
                         val_upper_box, 
                         val_max])

例如

import plotly
plotly.offline.init_notebook_mode()

val_min = 1
val_lower_box = 2
val_median = 3
val_upper_box = 4.5
val_max = 6

box_plot = plotly.graph_objs.Box(y=[val_min, 
                                    val_lower_box, 
                                    val_lower_box, 
                                    val_median, 
                                    val_upper_box, 
                                    val_upper_box, 
                                    val_max])
plotly.offline.iplot([box_plot])

给你