使用 Bokeh 库创建数据可视化的快速提示和示例。
长按关注《Python学研大本营》,加入读者群,分享更多精彩 扫码关注《Python学研大本营》,加入读者群,分享更多精彩
使用 Bokeh,可以使用选项卡显示数据可视化。与仪表板类似,每个选项卡都包含自己的内容。选项卡显示多个相互关联的可视化效果,而无需生成仪表板或在 Jupyter Notebook 中滚动浏览多个图像。它们对于显示同一图形的不同视图也很有用。
下图显示了如何使用选项卡显示散点图的变体。第一个散点图按性别显示学生的数学和阅读分数,而第二个散点图按种族显示学生的数学和阅读分数。
图片:散景示例中的 Tabs 对象
要创建带有选项卡的对象,请使用以下命令导入选项卡和面板小部件。
from bokeh.models.widgets import Tabs, Panel
创建图形后,可以将它们添加到选项卡式对象中。以下代码片段显示了学生成绩散点图的选项卡式对象是如何创建的。在此处查看此可视化的完整代码。
https://payalnpatel.github.io/Bokeh/
# Create tab panel for scatterplot visualizations
# Create the two panels
tab1 = Panel(child = p, title = 'Student Math and Reading Scores by Gender')
tab2 = Panel(child = r, title = 'Student Math and Reading Scores by Race')
# Add the tabs into a Tabs object
tabs_object = Tabs(tabs = [tab1, tab2])
# Output the plot
show(tabs_object)
虽然上面的示例显示每个选项卡一个可视化效果,但可以向每个选项卡添加多个可视化效果 - 请记住布局和整体流程!
默认情况下,网格线出现在使用 Bokeh 创建的数据可视化上。通过从可视化中删除网格线来减少视觉混乱。这使用户更容易查看和解释手头的数据。
查看下面按经验水平划分的平均工资条形图,我们看到了自动添加的网格线。
图片:带默认网格线的条形图 通过移除网格线,可视化变得不那么混乱,如下图所示。
图片:删除了网格线的条形图
在 Bokeh 中,移除网格线是一个快速的过程,可以通过将grid_line_color设置为“None”来完成。在此处查看此可视化的完整代码。
https://payalnpatel.github.io/Bokeh/
p.xgrid.grid_line_color = None
p.ygrid.grid_line_color = None
颜色是任何数据可视化的关键部分,决定使用正确的颜色可能需要时间。Bokeh 库带有几种预定义的颜色和调色板。
可用的调色板可能因您使用的 Bokeh 版本而异。要查看单个颜色名称的列表,请在此处查看 Bokeh 文档。
https://docs.bokeh.org/en/2.4.2/docs/reference/colors.html
要查看特定版本的可用调色板,请查看Bokeh 官方文档,或运行以下命令。此命令根据运行的 Bokeh 版本列出可用的调色板。
https://docs.bokeh.org/en/2.4.3/docs/reference/palettes.html
bokeh.palettes.all_palettes.keys()
散景调色板由不同的尺寸组成。要查看调色板中可用的特定 HEX 颜色以及可用的不同尺寸,请使用以下命令。此命令列出了“ Set3 ”调色板的可用尺寸,包括 HEX 颜色。
bokeh.palettes.all_palettes[‘Set3’]
要导入特定大小的调色板,请运行以下命令。此命令正在导入 3 号Set3调色板。
from bokeh.palettes import Set3_3
或者,通过指定调色板名称导入调色板中的所有尺寸。以下示例显示如何为Cividis调色板导入所有尺寸。
from bokeh.palettes import cividis
可能很难解释 HEX 颜色。要快速查看这些十六进制颜色,您可以使用如下函数。
from IPython.display import Markdown, display
def printColorPalette(color_palette):
display(Markdown(‘
’.join(
f’{color}: ███████’
for color in color_palette
)))
此函数获取十六进制数字列表,并打印出十六进制数字和相应的色块。下图显示了各种大小的Cividis、Set3和Spectral调色板的输出。
图片:使用函数打印各种调色板
有关更多示例,请在此处查看完整代码。
https://payalnpatel.github.io/Bokeh/
在 Jupyter Notebook 中创建 Bokeh 可视化时,默认设置会在新网页中显示输出。直接在笔记本中显示可视化,以快速排除故障并开发可视化。
要在 Jupyter Notebook 中显示 Bokeh 数据可视化,请导入以下函数。
from bokeh.io import output_notebook, show
from bokeh.resources import INLINE
在开发任何可视化之前,调用 Bokeh 的output_notebook()
函数,如下所示。
output_notebook(resources=INLINE)
设置可视化的输出后,对每个数据可视化使用show()函数以在笔记本中显示输出。
例如,下图显示了如何调用show()函数以在 Jupyter Notebook中显示图形p (散点图)。
图片:Jupyter Notebook 中显示的数据可视化
直接在笔记本中显示可视化有助于将可视化保存在一个文档中。这使得以后可以轻松引用可视化效果,而无需重新运行整个笔记本。
这些是使用 Bokeh 增强数据可视化效果的几种方法!此处提供所有示例,包括代码和数据集。
https://payalnpatel.github.io/Bokeh/
参考:
[1]:拉塞尔.“巧克力评级。” Kaggle,https ://www.kaggle.com/datasets/andrewmvd/chocolate-ratings 于 2022 年 12 月 8 日访问。(CC0:公共领域许可)
[2]:沙哈恩,索拉布。“数据科学工作薪资数据集。” Kaggle,www.kaggle.com/datasets/saurabhshahane/data-science-jobs-salaries 于2022 年 12 月 8 日访问。(CC0:公共领域许可)
[3]:战神。“加州野火 (2013–2020)。” Kaggle,https ://www.kaggle.com/datasets/ananthu017/california-wildfire-incidents-20132020 于 2022 年 12 月 8 日访问。(CC0:公共领域许可)
[4]: Chauhan, 阿曼.“学生在考试中的表现。” Kaggle,https ://www.kaggle.com/datasets/whenamancodes/students-performance-in-exams 于 2022 年 12 月 8 日访问。(CC0:公共领域许可)
本书针对深度学习及开源框架——PyTorch,采用简明的语言进行知识的讲解,注重实战。全书分为4篇,共19章。深度学习基础篇(第1章~第6章)包括PyTorch简介与安装、机器学习基础与线性回归、张量与数据类型、分类问题与多层感知器、多层感知器模型与模型训练、梯度下降法、反向传播算法与内置优化器。计算机视觉篇(第7章~第14章)包括计算机视觉与卷积神经网络、卷积入门实例、图像读取与模型保存、多分类问题与卷积模型的优化、迁移学习与数据增强、经典网络模型与特征提取、图像定位基础、图像语义分割。自然语言处理和序列篇(第15章~第17章)包括文本分类与词嵌入、循环神经网络与一维卷积神经网络、序列预测实例。生成对抗网络和目标检测篇(第18章~第19章)包括生成对抗网络、目标检测。
本书适合人工智能行业的软件工程师、对人工智能感兴趣的学生学习,同时也可作为深度学习的培训教程。
日月光华:网易云课堂资深讲师,经验丰富的数据科学家和深度学习算法工程师。擅长使用Python编程,编写爬虫并利用Python进行数据分析和可视化。对机器学习和深度学习有深入理解,熟悉常见的深度学习框架( PyTorch、TensorFlow)和模型,有丰富的深度学习、数据分析和爬虫等开发经验,著有畅销书《Python网络爬虫实例教程(视频讲解版)》。
链接:https://item.jd.com/13528847.html
精彩回顾
《Pandas1.x实例精解》新书抢先看!
【第1篇】利用Pandas操作DataFrame的列与行
【第2篇】Pandas如何对DataFrame排序和统计
【第3篇】Pandas如何使用DataFrame方法链
【第4篇】Pandas如何比较缺失值以及转置方向?
【第5篇】DataFrame如何玩转多样性数据
【第6篇】如何进行探索性数据分析?
【第7篇】使用Pandas处理分类数据
【第8篇】使用Pandas处理连续数据
【第9篇】使用Pandas比较连续值和连续列
【第10篇】如何比较分类值以及使用Pandas分析库
长按关注《Python学研大本营》
长按二维码,加入Python读者群
扫码关注《Python学研大本营》,加入读者群,分享更多精彩