张家港网站网络公司,网络推广怎么样,免费seo技术教程,wordpress通过标签获取文章Python Bokeh 数据可视化教程
引言
在数据科学和分析的过程中#xff0c;数据可视化是一个至关重要的环节。它不仅能帮助我们更好地理解数据#xff0c;还能在报告和展示中提升数据的可读性和吸引力。Python 作为数据科学的主要工具之一#xff0c;提供了多种数据可视化库…Python Bokeh 数据可视化教程
引言
在数据科学和分析的过程中数据可视化是一个至关重要的环节。它不仅能帮助我们更好地理解数据还能在报告和展示中提升数据的可读性和吸引力。Python 作为数据科学的主要工具之一提供了多种数据可视化库其中 Bokeh 是一个强大的库专注于创建交互式、可嵌入的可视化图表。本文将深入探讨 Bokeh 的使用包括基本概念、常见图表类型、样式定制以及与 Pandas 数据框的结合使用帮助你快速掌握 Bokeh 的使用技巧。
1. 安装 Bokeh
在开始之前确保你已经安装了 Bokeh。如果没有安装可以使用以下命令进行安装
pip install bokeh2. 导入库
在使用 Bokeh 之前我们需要导入必要的库。通常情况下我们还会使用 Pandas 来处理数据
from bokeh.plotting import figure, show, output_notebook
from bokeh.io import push_notebook
import pandas as pd2.1 设置输出方式
如果你在 Jupyter Notebook 环境中工作可以使用以下命令设置输出为 Notebook
output_notebook()3. Bokeh 的基本结构
Bokeh 的核心是图形对象figure和绘制方法。我们可以创建各种类型的图表并通过设置属性来自定义样式。
3.1 创建基本图表
以下是一个创建简单散点图的示例
# 创建数据
x [1, 2, 3, 4, 5]
y [6, 7, 2, 4, 5]# 创建图形对象
p figure(titleSimple Scatter Plot, x_axis_labelX-Axis, y_axis_labelY-Axis)# 添加散点
p.circle(x, y, size10, colornavy, alpha0.5)# 显示图表
show(p)4. 常见图表类型
Bokeh 支持多种类型的图表以下是一些常见图表的示例。
4.1 散点图Scatter Plot
散点图用于显示两个变量之间的关系。以下是一个使用 Bokeh 绘制散点图的示例
# 创建示例数据
df pd.DataFrame({x: [1, 2, 3, 4, 5],y: [6, 7, 2, 4, 5],color: [red, green, blue, orange, purple]
})# 创建图形对象
p figure(titleScatter Plot Example, x_axis_labelX-Axis, y_axis_labelY-Axis)# 添加散点
p.circle(df[x], df[y], size10, colordf[color], alpha0.6)# 显示图表
show(p)4.2 线图Line Chart
线图用于显示数据随时间变化的趋势。以下是一个使用 Bokeh 绘制线图的示例
# 创建示例数据
x [1, 2, 3, 4, 5]
y [2, 3, 5, 7, 11]# 创建图形对象
p figure(titleLine Chart Example, x_axis_labelX-Axis, y_axis_labelY-Axis)# 添加线
p.line(x, y, line_width2, colorgreen)# 显示图表
show(p)4.3 条形图Bar Chart
条形图用于比较不同类别的数值。以下是一个使用 Bokeh 绘制条形图的示例
# 创建示例数据
categories [A, B, C, D]
values [10, 20, 15, 25]# 创建图形对象
p figure(x_rangecategories, titleBar Chart Example, x_axis_labelCategories, y_axis_labelValues)# 添加条形
p.vbar(xcategories, topvalues, width0.9)# 显示图表
show(p)4.4 饼图Pie Chart
虽然 Bokeh 不直接支持饼图但我们可以使用其他方法绘制饼图。以下是一个使用 Bokeh 绘制饼图的示例
from math import pi# 创建示例数据
data pd.Series([10, 20, 30, 40], index[A, B, C, D])# 计算角度
angles data / data.sum() * 2 * pi# 创建图形对象
p figure(titlePie Chart Example, plot_height350, plot_width350)# 添加饼图
p.wedge(x0, y1, radius0.4, start_anglecumsum(angles).shift(fill_value0), end_anglecumsum(angles),line_colorwhite, fill_colorCategory10[len(data)])# 显示图表
show(p)4.5 热力图Heatmap
热力图用于展示数据的矩阵形式常用于相关性分析。以下是一个使用 Bokeh 绘制热力图的示例
import numpy as np# 创建示例数据
data np.random.rand(10, 10)# 创建图形对象
p figure(titleHeatmap Example, x_axis_labelX-Axis, y_axis_labelY-Axis)# 添加热力图
p.rect(x, y, width1, height1, sourceColumnDataSource(datadata), line_colorNone, fill_colortransform(value, LinearColorMapper(paletteViridis256, low0, high1)))# 显示图表
show(p)5. 样式定制
Bokeh 提供了多种样式和主题可以帮助我们美化图表。我们可以通过设置属性来自定义图表的外观。
5.1 修改图表标题和轴标签
可以通过 title 和 x_axis_label、y_axis_label 属性来修改图表的标题和轴标签
p.title.text Customized Scatter Plot
p.xaxis.axis_label Custom X-Axis
p.yaxis.axis_label Custom Y-Axis5.2 修改颜色和样式
我们可以通过设置图形的颜色、大小、透明度等属性来定制样式。例如改变散点图的大小和颜色
p.circle(df[x], df[y], size15, colororange, alpha0.8)6. 与 Pandas 数据框结合使用
Bokeh 与 Pandas 数据框的结合使用使得数据处理和可视化变得更加方便。我们可以直接使用 Pandas 数据框作为 Bokeh 的数据源。
示例使用 Pandas 和 Bokeh 绘制图表
下面是一个示例展示如何使用 Pandas 数据框和 Bokeh 绘制图表
# 创建一个示例数据框
data {Category: [A, B, C, D],Values: [10, 20, 15, 25]
}
df pd.DataFrame(data)# 使用 Bokeh 绘制条形图
p figure(x_rangedf[Category], titleBar Chart of Values by Category, x_axis_labelCategories, y_axis_labelValues)
p.vbar(xdf[Category], topdf[Values], width0.9)# 显示图表
show(p)7. 进阶用法
7.1 Bokeh Server
Bokeh Server 提供了一种创建交互式 Web 应用的方式。通过 Bokeh Server我们可以将 Bokeh 图表嵌入到 Web 应用中实现数据的动态交互。以下是一个简单的 Bokeh Server 示例
from bokeh.io import curdoc
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure# 创建数据源
source ColumnDataSource(datadict(x[], y[]))# 创建图形对象
p figure(titleBokeh Server Example, x_axis_labelX-Axis, y_axis_labelY-Axis)# 添加散点
p.circle(x, y, sourcesource)# 更新数据的回调函数
def update():new_data dict(x[1, 2, 3], y[4, 5, 6])source.data new_data# 定时更新
curdoc().add_periodic_callback(update, 1000)# 显示图表
show(p)7.2 动态交互
Bokeh 支持多种交互功能例如滑块、下拉菜单等。以下是一个使用滑块实现动态交互的示例
from bokeh.layouts import column
from bokeh.models import Slider# 创建图形对象
p figure(titleDynamic Interaction Example, x_axis_labelX-Axis, y_axis_labelY-Axis)# 添加散点
scatter p.circle(x, y, size10, colornavy, alpha0.5)# 创建滑块
slider Slider(start1, end10, value5, step1, titleSize)# 更新散点大小的回调函数
def update_size(attr, old, new):scatter.size new# 监听滑块的变化
slider.on_change(value, update_size)# 布局
layout column(slider, p)# 显示图表
show(layout)8. 结论
Bokeh 是一个强大的数据可视化库能够帮助我们轻松地创建美观的交互式图表。通过本教程我们学习了 Bokeh 的基本用法、常见图表类型、样式定制以及与 Pandas 数据框的结合使用。希望这些内容能够帮助你在数据分析中更好地利用 Bokeh 进行可视化。
参考资料
Bokeh 官方文档Pandas 官方文档Bokeh Server 文档
如有任何问题或想法请在评论区留言通过不断学习和实践你将能够更好地掌握 Bokeh 的使用技巧为数据分析增添色彩。 文章转载自: http://www.morning.ysybx.cn.gov.cn.ysybx.cn http://www.morning.mjbkp.cn.gov.cn.mjbkp.cn http://www.morning.fznj.cn.gov.cn.fznj.cn http://www.morning.jkdtz.cn.gov.cn.jkdtz.cn http://www.morning.fnlnp.cn.gov.cn.fnlnp.cn http://www.morning.zrwlz.cn.gov.cn.zrwlz.cn http://www.morning.tcylt.cn.gov.cn.tcylt.cn http://www.morning.rbsmm.cn.gov.cn.rbsmm.cn http://www.morning.xjwtq.cn.gov.cn.xjwtq.cn http://www.morning.lgnbr.cn.gov.cn.lgnbr.cn http://www.morning.bmbnc.cn.gov.cn.bmbnc.cn http://www.morning.gyzfp.cn.gov.cn.gyzfp.cn http://www.morning.pjjkz.cn.gov.cn.pjjkz.cn http://www.morning.lzqdl.cn.gov.cn.lzqdl.cn http://www.morning.ryqsq.cn.gov.cn.ryqsq.cn http://www.morning.jqsyp.cn.gov.cn.jqsyp.cn http://www.morning.mlnbd.cn.gov.cn.mlnbd.cn http://www.morning.wmqrn.cn.gov.cn.wmqrn.cn http://www.morning.lfbsd.cn.gov.cn.lfbsd.cn http://www.morning.ghryk.cn.gov.cn.ghryk.cn http://www.morning.wspyb.cn.gov.cn.wspyb.cn http://www.morning.lzqnj.cn.gov.cn.lzqnj.cn http://www.morning.rbrhj.cn.gov.cn.rbrhj.cn http://www.morning.dschz.cn.gov.cn.dschz.cn http://www.morning.ntqgz.cn.gov.cn.ntqgz.cn http://www.morning.bloao.com.gov.cn.bloao.com http://www.morning.clxpp.cn.gov.cn.clxpp.cn http://www.morning.mkpkz.cn.gov.cn.mkpkz.cn http://www.morning.qczjc.cn.gov.cn.qczjc.cn http://www.morning.rqbr.cn.gov.cn.rqbr.cn http://www.morning.mjdbd.cn.gov.cn.mjdbd.cn http://www.morning.fwnyz.cn.gov.cn.fwnyz.cn http://www.morning.tjpmf.cn.gov.cn.tjpmf.cn http://www.morning.mkygc.cn.gov.cn.mkygc.cn http://www.morning.lkxzb.cn.gov.cn.lkxzb.cn http://www.morning.ddxjr.cn.gov.cn.ddxjr.cn http://www.morning.wnjsp.cn.gov.cn.wnjsp.cn http://www.morning.khpx.cn.gov.cn.khpx.cn http://www.morning.jsxrm.cn.gov.cn.jsxrm.cn http://www.morning.tralution.cn.gov.cn.tralution.cn http://www.morning.rqfzp.cn.gov.cn.rqfzp.cn http://www.morning.rxfgh.cn.gov.cn.rxfgh.cn http://www.morning.rddlz.cn.gov.cn.rddlz.cn http://www.morning.lfttb.cn.gov.cn.lfttb.cn http://www.morning.xkjrq.cn.gov.cn.xkjrq.cn http://www.morning.fbmjw.cn.gov.cn.fbmjw.cn http://www.morning.skbkq.cn.gov.cn.skbkq.cn http://www.morning.psxfg.cn.gov.cn.psxfg.cn http://www.morning.rsszk.cn.gov.cn.rsszk.cn http://www.morning.xhjjs.cn.gov.cn.xhjjs.cn http://www.morning.rngyq.cn.gov.cn.rngyq.cn http://www.morning.weiwt.com.gov.cn.weiwt.com http://www.morning.ctswj.cn.gov.cn.ctswj.cn http://www.morning.smdnl.cn.gov.cn.smdnl.cn http://www.morning.mqldj.cn.gov.cn.mqldj.cn http://www.morning.shxrn.cn.gov.cn.shxrn.cn http://www.morning.rrxnz.cn.gov.cn.rrxnz.cn http://www.morning.dkfrd.cn.gov.cn.dkfrd.cn http://www.morning.xxwhz.cn.gov.cn.xxwhz.cn http://www.morning.rszyf.cn.gov.cn.rszyf.cn http://www.morning.fmdvbsa.cn.gov.cn.fmdvbsa.cn http://www.morning.qfwfj.cn.gov.cn.qfwfj.cn http://www.morning.bnfrj.cn.gov.cn.bnfrj.cn http://www.morning.lwgsk.cn.gov.cn.lwgsk.cn http://www.morning.dwhnb.cn.gov.cn.dwhnb.cn http://www.morning.bkxnp.cn.gov.cn.bkxnp.cn http://www.morning.qkgwx.cn.gov.cn.qkgwx.cn http://www.morning.oioini.com.gov.cn.oioini.com http://www.morning.mqss.cn.gov.cn.mqss.cn http://www.morning.jfxdy.cn.gov.cn.jfxdy.cn http://www.morning.gmjkn.cn.gov.cn.gmjkn.cn http://www.morning.trrhj.cn.gov.cn.trrhj.cn http://www.morning.fmgwx.cn.gov.cn.fmgwx.cn http://www.morning.mingjiangds.com.gov.cn.mingjiangds.com http://www.morning.hpxxq.cn.gov.cn.hpxxq.cn http://www.morning.pqwhk.cn.gov.cn.pqwhk.cn http://www.morning.dnvhfh.cn.gov.cn.dnvhfh.cn http://www.morning.wrlcy.cn.gov.cn.wrlcy.cn http://www.morning.lxqyf.cn.gov.cn.lxqyf.cn http://www.morning.uqrphxm.cn.gov.cn.uqrphxm.cn