数据可视化之交互可视化
- 1、引言
- 2、交互可视化介绍
- 2.1 Bokeh
- 2.1.1 基本定义
- 2.1.2 常用功能
- 2.1.3 安装
- 2.1.4 代码示例
- 2.2 Plotly
- 2.2.1 基本定义
- 2.1.2 常用功能
- 2.1.3 安装
- 2.2.4 代码示例
- 2.3 Bokeh与Plotly 差异点
- 3、总结
1、引言
小屌丝:鱼哥,我发现一件事。
小鱼:嗯,你还挺擅于发现的。
小屌丝:额。。。我是说,我发现你最近发博客有规律。
小鱼:嗯, 你确实对我观察的很仔细。
小屌丝:…你最近写数据分析相关的博文,很频繁啊。
小鱼:你这发现的还真是仔细啊。
小屌丝:那是, 必须的必。我是谁, 话说为啥最近写数据分析相关的呢?
小鱼:因为… 当然是因为我在使用了哦。
小屌丝:那今天要分享啥呢?
小鱼:今天?不分享行不行。
小屌丝:别啊,我这还想着跟你学习呢。
小鱼:额,好吧,看在你这么好学的份上, 我们来聊一聊Bokeh和plotly
小屌丝:额,这个,我还真不太了解
小鱼:所以, 我们来聊一聊哦。
2、交互可视化介绍
2.1 Bokeh
2.1.1 基本定义
Bokeh是由美国西北大学的研究人员创建的,是一个用于创建高度交互式的数据可视化图表的Python库。
它专注于数据可视化,允许用户使用Python进行数据分析和可视化,同时创建出可以在网页浏览器中交互的图表。
2.1.2 常用功能
- 丰富的图表类型:Bokeh支持多种图表类型,包括折线图、散点图、条形图等。
- 高度交互性:Bokeh提供了丰富的交互功能,如鼠标悬停提示框、拖拽调整、焦点视图等。
- 数据连接:Bokeh支持从多种数据源获取数据,包括Pandas DataFrame、SQL数据库等。
2.1.3 安装
因为 Bokeh 属于三方库,所以,需要先安装,在使用。
老规矩, pip安装
pip install bokeh
其它安装方式,直接看这两篇:
《Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!》
《Python3:我低调的只用一行代码,就导入Python所有库!》
2.1.4 代码示例
# -*- coding:utf-8 -*-
# @Time : 2023-11-19
# @Author : Carl_DJ
'''
实现功能:
使用 Bokeh 交互可视化
'''
from bokeh.plotting import figure, output_file, show
import pandas as pd
# 读取数据
df = pd.read_csv('./data/data_bokeh.csv')
# 创建图表
output_file('./result/output.html')
p = figure()
# 添加数据点
p.circle(df['x'], df['y'], size=4, color='navy', alpha=0.5)
# 显示图表
show(p)
2.2 Plotly
2.2.1 基本定义
Plotly是一个开源的Python图形库,可以创建高度交互式的2D和3D图像。
它支持多种图像类型,包括散点图、线图、热图等,并支持在Jupyter notebook中直接使用。
2.1.2 常用功能
- 多样的图像类型:Plotly支持多种图像类型,包括散点图、线图、热图等。
- 强大的交互功能:Plotly的图像支持鼠标悬停提示框、点击事件等交互功能。
- 数据连接:Plotly支持从多种数据源获取数据,包括Pandas DataFrame、SQL数据库等
2.1.3 安装
因为 plotly 属于三方库,所以,需要先安装,在使用。
同样, pip安装
pip install plotly
其它安装方式,直接看这两篇:
《Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!》
《Python3:我低调的只用一行代码,就导入Python所有库!》
2.2.4 代码示例
# -*- coding:utf-8 -*-
# @Time : 2023-11-19
# @Author : Carl_DJ
'''
实现功能:
使用 plotly 交互可视化
'''
import plotly.graph_objs as go
import pandas as pd
# 读取数据
df = pd.read_csv('./data/data_plotly.csv')
# 创建图像对象
trace = go.Scatter(x=df['x'], y=df['y'], mode='markers', marker=dict(size=4, color='navy', alpha=0.5))
data = [trace]
layout = go.Layout(title='Scatter Plot')
fig = go.Figure(data=data, layout=layout)
# 显示图像
fig.show()
2.3 Bokeh与Plotly 差异点
Bokeh和Plotly都是非常优秀的Python可视化库,都提供了强大的交互式可视化功能。
然而,它们在某些方面存在一些差异,如下:
- 交互性:
- Bokeh专注于交互性,提供了丰富的交互功能,如鼠标悬停提示框、拖拽调整、焦点视图等。这些功能使得用户可以更方便地探索和分析数据。
- Plotly的交互性也很强大,但相对而言更灵活,用户可以通过鼠标操作来放大、缩小和旋转图表,还可以通过滑块、下拉菜单等添加交互元素。
- 可视化效果:Plotly和Bokeh在可视化效果上都提供了良好的表现。
- Plotly的绘图效果比较平滑和精细,可以生成高质量的图表。
- Bokeh的绘图效果相对简单和直接,更适合用于快速绘图和数据演示。
- 学习曲线:
- Bokeh的学习曲线可能稍高,因为它包含较多的概念和工具,需要一些时间来熟悉。
- 而Plotly的语法相对更容易上手,对于初学者来说可能更容易掌握。
- 扩展性:Bokeh和Plotly都支持自定义和扩展,但方式略有不同。
- Bokeh通过添加自定义JS和CSS来扩展其功能,这需要一些JavaScript和CSS的知识。
- 而Plotly则通过提供Python接口来扩展其功能,这需要Python编程知识。
- 社区支持:
- Plotly是一个比较成熟的可视化库,拥有庞大的用户群体和丰富的社区资源,包括文档、示例和教程等。
- Bokeh相对较新,但也在逐步发展中,其社区支持相对较少。
3、总结
看到这里,今天的内容差不多就到这里了。
今天主要针对Bokeh和Plotly 进行了详细介绍。
其实,在平常工作中, 或者做数据分析的时候,数据可视化是很常用。
当然, 如果你不想做数据交互可视化, 只掌握 matplotlib 或者 seaborn ,那也可以。
毕竟, 条条大路通罗马嘛。
我是小鱼:
- CSDN 博客专家;
- 阿里云 专家博主;
- 51CTO博客专家;
- 51认证讲师等;
- 认证金牌面试官;
- 职场面试及培训规划师;
- 多个国内主流技术社区的认证专家博主;
- 多款主流产品(阿里云等)测评一、二等奖获得者;
关注小鱼,带你学习更多更专业更前言的Python相关技术。