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

news2024/10/6 1:41:08

数据可视化之交互可视化

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1234699.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

详解Python安装requests库的实例代码

文章目录 前言基本用法基本的get请求带参数的GET请求解析json关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼职渠道 前…

腾讯云COS+picgo+typora 图床搭建与自动上传

1、腾讯云 COS 腾讯云活动 COS新用户专享 COS 操作步骤 1、点击 创建桶,完善信息 点击下一步,剩下的配置可自己配置 2、picgo 官网地址 2.3.1版本下载地址 现在稳定版本是2.3.1 相关连接 腾讯云密钥设置地址picgo官网地址2.3.1版本下载地址

4-11 四个数排序

#include<stdio.h> int main(){int t,a,b,c,d;printf("请输入四个数&#xff1a;");scanf("%d %d %d %d",&a,&b,&c,&d);printf("a%d,b%d,c%d,d%d\n",a,b,c,d);if(a>b){ta;ab;bt;}if(a>c){ta;ac;ct;}if(a>d){ta;a…

注册亚马逊美国买家号需要些什么资料?

注册亚马逊美国买家号需要准备邮箱、美国手机号、美国地址及能支付的支付卡。准备好之后进入亚马逊美国站进行点击注册&#xff0c;按照格式填写好之后即可注册成功了。 而如果想要注册大量买家号&#xff0c;可以使用亚马逊鲲鹏系统进行自动化操作&#xff0c;想要自动化更顺畅…

【STM32】TF卡FTA32文件系统

一、SD卡介绍 1.SD简介 本质&#xff1a;NandFlash控制芯片 2.SD卡存储容量等级 3.FAT文件系统的使用 4.SD卡速度等级 5.SD卡驱动方式 1.SDIO&&SD 1&#xff09;SDIO接口通信线&#xff1a;CLK/CMD/DAT0-3&#xff08;数据传输线4根&#xff09; 2&#xff09;SPI接口…

这样做出来的电子杂志好看又精美,不信你也来试试!

大家会不会有一种困惑&#xff0c;为什么别人制作的电子杂志那么精美高级&#xff0c;能翻页&#xff0c;能分享到微信、微博等&#xff0c;而自己制作的电子杂志却是平平无奇&#xff1f; 在这个快节奏的时代&#xff0c;人们的生活方式也发生了翻天覆地的变化。而使用FLBOOK…

(swjtu西南交大)数据库实验(数据库需求分析):音乐软件数据管理系统

实验内容&#xff1a; 数据库需求分析&#xff1a;各用户组需求描述&#xff0c;绘出数据流图&#xff08;详细案例参见教材p333~p337&#xff0c;陶宏才&#xff0c;数据库原理及设计&#xff0c;第三版&#xff09;&#xff1b; 一、选题背景 近年来&#xff0c;“听歌”逐…

Python-函数传参与数据类型

Python中&#xff0c;函数参数传递是通过对象的引用进行的&#xff0c;我们可以进行下面的验证。 def use_name(val):print("name id :%s" % (id(val)))val "hanshu1"print("name id modified :%s" % (id(val)))def test_ref():name "ha…

CyNix

CyNix 一、主机发现和端口扫描 主机发现&#xff0c;靶机地址192.168.80.146 arp-scan -l端口扫描&#xff0c;只开放了80和6688端口 nmap -A -p- -sV 192.168.80.146二、信息收集 访问80端口 路径扫描 gobuster dir -u http://192.168.80.146/ -w /usr/share/wordlists/dir…

吴恩达《机器学习》9-4-9-6:实现注意:展开参数、梯度检验、随机初始化

一、实现注意:展开参数 在上一个视频中&#xff0c;讨论了使用反向传播算法计算代价函数的导数。在本视频中&#xff0c;将简要介绍一个实现细节&#xff0c;即如何将参数从矩阵展开为向量。这样做是为了在高级最优化步骤中更方便地使用这些参数。 二、梯度检验 在神经网络中…

如何制作动态表情包?一个方法快学起来

在当代的通讯工具中&#xff0c;动态表情包已经是人们日常交流不可缺少的一部分了。但是&#xff0c;很多时候网络上常见的动态表情包不能够很好表达出我们的需求时应该怎么办呢&#xff1f;这时候&#xff0c;我们可以使用gif动图制作&#xff08;https://www.gif.cn/&#xf…

深入理解强化学习——马尔可夫决策过程:马尔可夫决策过程和马尔可夫过程/马尔可夫奖励过程的区别

分类目录&#xff1a;《深入理解强化学习》总目录 《深入理解强化学习——马尔可夫决策过程》系列前面的文章讨论到的马尔可夫过程和马尔可夫奖励过程都是自发改变的随机过程&#xff0c;而如果有一个外界的“刺激”来共同改变这个随机过程&#xff0c;就有了马尔可夫决策过程&…

板块概念相关(五)

5-板块概念相关 文章目录 5-板块概念相关一. 查询所有的版块列表二. 查询所有的概念列表三. 查询所有的地域列表四. 查询所有的版块资金支持的类型五. 查询某个版块历史记录列表,形成图表形式六. 查询某个版块历史记录列表七. 查询某个版块今日资金,形成图表形式八. 查询该板块…

接入keycloak实现单点登录

问题 1.如果跨域在keycloak管理中心Clients-Client details-Settings-Web origins添加浏览器访问地址就行 一、html引入cdn实现 页面引入 <!-- keycloak --> <script src"https://unpkg.com/keycloak-js22.0.5/dist/keycloak.js"></script> &l…

学习Rust适合写什么练手项目?【云驻共创】

Rust是一门备受关注的系统级编程语言&#xff0c;因其出色的内存安全性、高性能和并发性能而备受赞誉。对于那些希望学习和掌握Rust编程语言的人来说&#xff0c;练手项目是一个不可或缺的环节。通过实际动手完成项目&#xff0c;你可以加深对Rust语言特性和最佳实践的理解&…

ky10 server arm 在线编译安装openssl3.1.4

在线编译脚本 #!/bin/shOPENSSLVER3.1.4OPENSSL_Vopenssl versionecho "当前OpenSSL 版本 ${OPENSSL_V}" #------------------------------------------------ #wget https://www.openssl.org/source/openssl-3.1.4.tar.gzecho "安装OpenSSL${OPENSSLVER}...&q…

郎酒“掉队”,经销商们能等来春天吗?

文 | 螳螂观察&#xff08;TanglangFin&#xff09; 作者 | 渡过 有“六朵金花”之称的川酒品牌中&#xff0c;五粮液、泸州老窖、舍得、水井坊都已成功上市&#xff0c;只剩下郎酒和剑南春未上市。 与IPO的“掉队”相对应的&#xff0c;是郎酒在冲刺高端、内部管理、渠道管…

C语言进制转换(1112:进制转换(函数专题))

题目描述 输入一个十进制整数n&#xff0c;输出对应的二进制整数。常用的转换方法为“除2取余&#xff0c;倒序排列”。将一个十进制数除以2&#xff0c;得到余数和商&#xff0c;将得到的商再除以2&#xff0c;依次类推&#xff0c;直到商等于0为止&#xff0c;倒取除得的余数…

Python之staticmethod:让你的代码更简洁高效

概要 在Python中&#xff0c;staticmethod是一种非常有用的装饰器&#xff0c;它可以将一个方法转换为静态方法&#xff0c;使得该方法可以通过类名或实例名直接调用&#xff0c;而不需要传入self参数。staticmethod的使用可以让代码更加简洁、高效&#xff0c;同时也可以提高…