Python数据可视化:绘图库——Bokeh应用讲解

python

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

以下文章来源于娜驿站 ,作者娜娜zhao

前言

虽然在Python中有matplotlib可以满足我们大部分的绘图需求,但是这种原生的基本绘图确实显得不那么漂亮,当然可以通过一些设置使之看起来美观,然而那样一来就要花费不少的时间,好在强大的Python第三方库中有一些现成的绘图库,可以使得我们日常的绘图显得美观又便捷,这篇文章就来介绍一种绘图库——Bokeh。

Bokeh是用于现代Web浏览器的交互式可视化库,使用它可以进行快速交互式绘图,令我们感觉更方便的是还有一个与pandas绑定的版本——Pandas-Bokeh,使用这个绑定版本,既可以利用强大的pandas库,又可以调用Bokeh的强大绘图能力。

 

安装

熟悉Python第三方库安装的同学应该很容易对该包进行安装:

pip install pandas_bokeh

我这里安装的是bokeh-2.2.2和pandas-bokeh-0.5版本。Python的版本是3.8.3

条形统计图绘制

现在我们用一个小例子来说明条形统计图如何绘制,比如我们绘制连续十年的某三种产品销售量,为方便计,我们用numpy的随机数来生成这些数据:

import numpy as np

import pandas as pd

import pandas_bokeh as pb

df = pd.DataFrame({

"年份": np.arange(2010, 2020),

"产品A": np.random.uniform(9000, 15000, 10),

"产品B": np.random.uniform(9000, 15000, 10),

"产品C": np.random.uniform(9000, 15000, 10),

}

)

df

 

上述代码中的np.random.uniform(9000,15000,10)的意思是在9000-15000中随机选取10个数字,注意,从生成的结果来看,这些随机选择的数字可以是小数。

为了将图形绘制在jupyter-lab的notebook中,我们需要调用以下代码:

pb.output_notebook()

 

从上述显示信息可以看出,Bokeh已经加载成功,下面我们就来绘制条形统计图:

df.plot_bokeh(

kind = "bar",

x = "年份",

y = ["产品A", "产品B", "产品C"],

xlabel = "产品数量",

ylabel = "年度销售量",

title = "三种产品年度销售统计图"

)

绘制的图形如下:

 

上述代码是不是比matplotlib更简洁?绘制的图形无论形状还是着色是不是比后者更漂亮?下面我们来简单说明一下plot_bokeh这个函数所带的几个参数:

  1. kind指的是我们要绘制的图形类型,当前的pandas_bokeh支持这几种图形:line, point, step, scatter, bar, histogram, area, pie, map。
  2. x和y直接传递的是dataframe数据集中的key,即指定何者为横轴数据,何者为纵轴数据。
  3. xlabel和ylabel是x轴和y轴的标签。
  4. title是图表的标题。

所以,只要配置好dataframe,即可以很容易绘制出我们想要的图形。

一些高级参数

当然,这个库也支持一些参数的高级用法,比如可以规定坐标轴的范围、关闭图形的鼠标缩放功能等等,比如将上述数据绘制成折线统计图:

df.plot_bokeh.line(    

x = "年份",

y = ["产品A", "产品B", "产品C"],

xlabel = "产品数量",

ylabel = "年度销售量",

title = "三种产品年度销售统计图",

figsize=(800, 500),

ylim = (5000, 20000),

zooming = False,

panning=False,

)

绘制的图形如下:

 

注意: df.plot_bokeh.line(...)相当于df.plot_bokeh(kind="line", ...),其中figsize用一对数组定义了画布的宽和高;xlim和ylim分别定义了x轴和y轴的范围;zooming是鼠标滚轮缩放的开关;而panning是平移开关,当关闭时,曲线不能移动。当然这些开关都可以通过图形右侧的工具栏快速切换。

将图形输出到HTML文件

刚才我们设置将绘制的图形直接输出到jupyter-lab的notebook中,如果离开该环境,图形还可以输出成其它方式吗?答案是肯定的,即Bokeh还可以将图形输出成HTML文件进行保存,但在使用这一功能之前,需要指定HTML文件名称:

pb.output_file("mychart.html")

现在我们再来执行一下上述代码,看看要生成的条形统计图是如何保存成一个HTML文件的:

df.plot_bokeh(

kind = "bar",

x = "年份",

y = ["产品A", "产品B", "产品C"],

xlabel = "产品数量",

ylabel = "年度销售量",

title = "三种产品年度销售统计图"

)

当我们运行上述代码时,浏览器立刻打开一个页面显示生成的图片,如下图所示:

 

小结

本文演示了pandas_bokeh这个第三方库的绘图功能,关于pandas的问题在本公众号前面有相应的几篇文章进行了简介,如果熟悉matplotlib的应该还对其中“中文”问题的设置有印象,但利用Bokeh,则不会存在这个问题。

以上是 Python数据可视化:绘图库——Bokeh应用讲解 的全部内容, 来源链接: utcz.com/z/529933.html

回到顶部