Python数据可视化:绘图库——Bokeh应用讲解
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
以下文章来源于娜驿站 ,作者娜娜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这个函数所带的几个参数:
- kind指的是我们要绘制的图形类型,当前的pandas_bokeh支持这几种图形:line, point, step, scatter, bar, histogram, area, pie, map。
- x和y直接传递的是dataframe数据集中的key,即指定何者为横轴数据,何者为纵轴数据。
- xlabel和ylabel是x轴和y轴的标签。
- 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