Python3,必备数据可视化之:数据交互可视化

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相关技术。

猜你喜欢

转载自blog.csdn.net/wuyoudeyuer/article/details/134530738