使用Bokeh绘制箱线图:展示数据分布情况
发布时间:2024-01-03 14:48:17
Bokeh是一个用于数据可视化的Python库,可以帮助我们轻松绘制各种各样的图表,包括箱线图。箱线图是一种常用的数据分布可视化图表,用于展示数据的中位数、上下四分位数以及可能的离群值。
在使用Bokeh绘制箱线图之前,我们首先需要安装Bokeh库。可以通过以下命令在命令行中安装Bokeh库:
pip install bokeh
安装完成后,我们可以开始使用Bokeh绘制箱线图。
首先,我们需要导入需要使用的库和模块:
import numpy as np from bokeh.plotting import figure, show from bokeh.layouts import column
接下来,我们可以生成一些示例数据,以便展示箱线图的效果:
np.random.seed(42) data = np.random.normal(0, 1, 100)
在上面的代码中,我们使用numpy库生成了100个符合正态分布的随机数。
接下来,我们可以计算数据的中位数、上下四分位数以及可能的离群值:
q1, q2, q3 = np.percentile(data, [25, 50, 75]) iqr = q3 - q1 lower_bound = q1 - 1.5 * iqr upper_bound = q3 + 1.5 * iqr outliers = [x for x in data if x < lower_bound or x > upper_bound]
在上面的代码中,我们使用numpy库的percentile函数计算了数据的上下四分位数,然后根据四分位数计算了内限范围(lower_bound和upper_bound),最后找到了可能的离群值(outliers)。
接下来,我们可以使用Bokeh库绘制箱线图,并将数据和离群值添加到图表中:
p = figure(width=300, height=300) p.segment(0, q2, 1, q2, color="black") p.rect(0.5, q1, 0.2, iqr, color="blue", alpha=0.2) p.rect(0.5, q3, 0.2, iqr, color="blue", alpha=0.2) p.circle(0.5, outliers, size=6, color="red", alpha=0.6)
在上面的代码中,我们创建了一个名为p的图表对象。使用segment方法绘制了代表中位数的黑色线段,使用rect方法绘制了代表上下四分位数的蓝色矩形,使用circle方法绘制了离群值的红色圆圈。
最后,我们可以使用show函数展示箱线图:
show(column(p))
在上面的代码中,我们使用了show函数和column函数,将图表添加到显示中。
完整的示例代码如下:
import numpy as np from bokeh.plotting import figure, show from bokeh.layouts import column np.random.seed(42) data = np.random.normal(0, 1, 100) q1, q2, q3 = np.percentile(data, [25, 50, 75]) iqr = q3 - q1 lower_bound = q1 - 1.5 * iqr upper_bound = q3 + 1.5 * iqr outliers = [x for x in data if x < lower_bound or x > upper_bound] p = figure(width=300, height=300) p.segment(0, q2, 1, q2, color="black") p.rect(0.5, q1, 0.2, iqr, color="blue", alpha=0.2) p.rect(0.5, q3, 0.2, iqr, color="blue", alpha=0.2) p.circle(0.5, outliers, size=6, color="red", alpha=0.6) show(column(p))
运行以上代码,即可生成一个简单的箱线图,展示了数据的分布情况。
通过以上例子,我们可以看到使用Bokeh绘制箱线图非常简单。Bokeh提供了丰富的绘图功能,可以帮助我们更好地理解和分析数据。通过选择合适的参数和样式,我们可以自定义箱线图的外观以及呈现的数据。
