使用bqplot进行交互式数据可视化:从基础到高级

使用bqplot进行交互式数据可视化:从基础到高级

bqplot Plotting library for IPython/Jupyter notebooks bqplot 项目地址: https://gitcode.com/gh_mirrors/bq/bqplot

前言

bqplot是一个基于Jupyter生态系统的交互式可视化库,它结合了Python的易用性和D3.js的强大交互能力。本文将全面介绍如何使用bqplot的pyplot接口创建各种类型的图表,并实现丰富的交互功能。

环境准备

首先需要导入必要的库:

from bqplot import pyplot as plt
import numpy as np
import pandas as pd
import datetime as dt

基础图表绘制

1. 折线图

折线图是最基础也是最常用的图表类型之一。bqplot创建折线图非常简单:

# 生成随机数据
np.random.seed(0)
size = 100
y_data = np.cumsum(np.random.randn(size) * 100.0)
x = np.linspace(0.0, 10.0, size)

# 创建折线图
plt.figure()
plt.plot(x, y_data)
plt.xlabel("时间")
plt.ylabel("股票价格")
plt.title("布朗运动增量")
plt.show()

2. 散点图

散点图适合展示两个变量之间的关系:

y_data_2 = np.cumsum(np.random.randn(size))
y_data_3 = np.cumsum(np.random.randn(size) * 100.0)

plt.figure(title="带颜色的散点图")
plt.scatter(y_data_2, y_data_3, color=y_data, stroke="black")
plt.show()

3. 直方图

直方图用于展示数据的分布情况:

plt.figure()
plt.hist(y_data, colors=["OrangeRed"])
plt.show()

4. 柱状图

柱状图适合展示分类数据的比较:

plt.figure()
bar_x = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"]
plt.bar(bar_x, y_data_3[:10])
plt.show()

5. 饼图

饼图用于展示各部分占总体的比例:

plt.figure()
d = abs(y_data_2[:5])
plt.pie(d)
plt.show()

金融图表

1. OHLC图

OHLC图(开盘-最高-最低-收盘图)是金融分析中常用的图表:

dates = np.arange(dt.datetime(2014, 1, 2), dt.datetime(2014, 1, 30), dt.timedelta(days=1))

prices = np.array([
    [187.21, 187.4, 185.2, 185.53],
    # 更多价格数据...
])

plt.figure()
plt.ohlc(dates, prices)
plt.show()

2. 箱线图

箱线图用于展示数据的分布特征:

plt.figure()
plt.boxplot(np.arange(10), np.random.randn(10, 100))
plt.show()

地理图表

bqplot支持地理数据的可视化:

plt.figure()
plt.geo(map_data="WorldMap")
plt.show()

热力图

热力图适合展示矩阵数据的分布:

plt.figure(padding_y=0)
plt.heatmap(x * x[:, np.newaxis])
plt.show()

高级功能

1. 多图表组合

可以在同一个图形中叠加多种图表类型:

plt.figure()
plt.plot(x, y_data_3, colors=["orangered"])
plt.scatter(x, y_data, stroke="black")
plt.show()

2. 标记字符串

使用简写字符串快速设置线条样式:

mark_x = np.arange(10)
plt.figure(title="使用标记字符串")
plt.plot(mark_x, 3 * mark_x + 5, "g-.s")  # 绿色、点划线、方块标记
plt.plot(mark_x ** 2, "m:d")  # 品红色、虚线、菱形标记
plt.show()

3. 交互功能

bqplot提供了多种交互工具:

刷选工具
fig = plt.figure()
plt.scatter(y_data_2, y_data_3, colors=["orange"], stroke="black")

label = widgets.Label()

def callback(name, value):
    label.value = str(value)

plt.brush_selector(callback)
区间选择器
fig = plt.figure()
n = 100
plt.plot(np.arange(n), y_data_3)
label = widgets.Label()

def callback(name, value):
    label.value = str(value)

plt.int_selector(callback)

图表管理

1. 多图形管理

bqplot支持同时管理多个图形:

plt.figure(1)
plt.plot(x, y_data_3)
plt.show()

plt.figure(2)
plt.plot(x[:20], y_data_3[:20])
plt.show()

2. 图形属性查看

可以查看和修改图形的属性:

marks = plt.current_figure().marks
marks[0].get_state()

3. 图形清理

plt.clear()  # 清除当前图形
plt.close(2)  # 关闭指定图形

结语

bqplot提供了丰富的可视化类型和强大的交互功能,特别适合在Jupyter环境中进行数据探索和分析。通过本文的介绍,您应该已经掌握了从基础图表到高级交互的各种技巧。实际应用中,可以根据需求组合不同的图表类型和交互工具,创建出更加丰富和专业的数据可视化作品。

bqplot Plotting library for IPython/Jupyter notebooks bqplot 项目地址: https://gitcode.com/gh_mirrors/bq/bqplot

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郦蜜玲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值