当前位置: 首页 > news >正文

【Vispy库】一个用于高性能交互式2D/3D数据可视化库 Python库

Vispy库

  • 1、你好,Vispy!
  • 2、安装Vispy,轻松上手
  • 3、案例一:绘制简单的2D图形
  • 4、案例二:3D图形的绘制
  • 5、案例三:大规模数据的可视化
  • 6、结语

1、你好,Vispy!

Vispy是一个用于Python的高性能交互式2D/3D数据可视化库。它以速度和灵活性著称,是处理大规模数据集的不二选择。想象一下,当你需要在屏幕上展示数以百万计的点或复杂的3D模型时,Vispy就是你的得力助手。

2、安装Vispy,轻松上手

在开始我们的Vispy之旅之前,我们先来安装这个库。Vispy的安装非常简单,你只需要打开你的命令行工具,输入以下命令:

pip install vispy

这行命令会从Python的包管理器pip中下载并安装Vispy。安装完成后,你就可以开始使用它了。

3、案例一:绘制简单的2D图形

让我们从一个简单的2D图形开始。Vispy提供了一个Canvas,你可以在这个Canvas上绘制各种图形。下面是一个绘制正弦波的例子:

import numpy as np
import vispy
from vispy import app, gloo# 创建一个Canvas
canvas = vispy.canvas.Canvas(size=(800, 600))# 定义数据
x = np.linspace(-2. * np.pi, 2. * np.pi, 1000)
y = np.sin(x)# 创建图形
img = gloo.Program("""// 顶点着色器attribute vec2 a_position;void main() {gl_Position = vec4(a_position, 0.0, 1.0);}""", """// 片段着色器void main() {gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);}""")# 将数据传给图形
img['a_position'] = np.column_stack((x, y))# 绘制图形
@canvas.connect
def on_draw(event):gloo.clear('black')img.draw('line_strip')# 显示Canvas
canvas.show()

这段代码会创建一个窗口,并在其中绘制一个正弦波。你可以看到这个波形是如何随着x值的变化而变化的。

4、案例二:3D图形的绘制

Vispy同样擅长3D图形的绘制。下面是一个绘制3D球体的例子:

from vispy import app, gloo, visuals# 创建Canvas
canvas = app.Canvas(size=(800, 600), show=True)# 创建球体
sphere = visuals.Sphere()# 将球体添加到Canvas
canvas.central_widget.add_widget(sphere)# 运行程序
app.run()

这段代码会创建一个窗口,并在其中显示一个3D球体。你可以旋转和缩放这个球体,感受3D图形的魅力。

5、案例三:大规模数据的可视化

Vispy的真正强大之处在于它处理大规模数据的能力。下面是一个使用Vispy绘制大规模点云的例子:

import numpy as np
from vispy import app, gloo# 创建Canvas
canvas = vispy.canvas.Canvas()# 生成大规模数据
N = 10**6  # 100万个点
data = np.random.normal(size=(N, 3))# 创建图形
points = gloo.Program("""attribute vec3 a_position;void main() {gl_Position = vec4(a_position, 1.0);}""", """void main() {gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); // 红色点}""")# 将数据传给图形
points['a_position'] = data# 绘制图形
@canvas.connect
def on_draw(event):gloo.clear('black')points.draw('points')# 显示Canvas
canvas.show()

这段代码会创建一个窗口,并在其中绘制100万个红色的点。Vispy能够非常流畅地处理这样的大规模数据。

6、结语

通过这三个案例,你应该对Vispy有了一个基本的了解。Vispy是一个强大的工具,它不仅可以帮助你绘制简单的2D和3D图形,还能够处理大规模的数据可视化任务。希望这篇文章能够帮助你入门Vispy,并激发你对数据可视化的兴趣。记住,Vispy的世界还有很多宝藏等着你去发掘!

相关文章:

【Vispy库】一个用于高性能交互式2D/3D数据可视化库 Python库

Vispy库 1、你好,Vispy!2、安装Vispy,轻松上手3、案例一:绘制简单的2D图形4、案例二:3D图形的绘制5、案例三:大规模数据的可视化6、结语 1、你好,Vispy! Vispy是一个用于Python的高…...

为什么 C 语言数组是从 0 开始计数的?

C 语言等大多数编程语言的数组从 0 开始而不从 1 开始,有两个原因: 第一:地址计算更方便 C 语言从 0 开始的话,array[i] 的地址就正好是: (array i) 如果是从 1 开始的话,就是 (array i - 1) 多一次计…...

matlab线性度计算程序

matlab线性度计算程序 环境 matlab2023a ads2020 原理 其中f(v)是曲线,fmax是f(v)的最大值,fmin是f(v)的最小值,vmax为fmax对应v值,vmin为fmin对应v值。 L∆fmax/(fmax-fmin) (1) ∆fmaxmax⁡[f(v)-[fmin-K*(v-vmin)]] (2) K(…...

为什么NMOS管比PMOS管更受欢迎?

NMOS在实际应用中为何比PMOS要更受欢迎。本文将从导电沟道、电子迁移率和器件速度等多个方面来展开讲解。 首先是在性能方面考虑: 与NMOS管驱动能力相同的一个PMOS管,其器件面积可能是NMOS管的2~3倍,然而器件面积会影响导通电阻…...

【论文复现】短期电力负荷

作者主页: 七七的个人主页 文章收录专栏: 论文复现 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 短期电力负荷 论文发表问题背景一. 基本问题二. 本论文发现的问题 对于论文发现问题的解决方案:复现…...

pytest脚本常用的执行命令

pytest脚本常用的执行命令 一、一般执行的脚本,执行.py文件整个脚本二、执行.py文件脚本中的一个模块三、执行脚本,执行.py文件整个脚本,或则一个模块,查看对应的日志信息3.1.py文件执行allure的脚本3.2去dos框下去执行对应的脚本…...

OpenCv入门

一.OpenCv简介 1 图像的起源 1.1图像是什么? 图:是物体反射或透射光的分布 像:是人的视觉系统所接受的图在人脑中所形版的印象或认识 1.2模拟图像和数字图像 模拟图像:连续存储的图像 数字图像:分级存储的图像 2 数字…...

超详细的flex教程(面试必考)

引言 为什么存在? Flex 布局的出现是为了解决传统 CSS 布局方式(如浮动布局、定位布局等)在处理复杂布局时的诸多限制和不便。 优势 1. 简化布局 Flex 布局的语法简洁明了,代码更易读。 2. 强大的对齐能力 提供丰富的对齐属…...

C++的输入与输出

一.格式和注意要点 1. #include<iostream>; using namespace std; 标准库定义了4个IO对象&#xff0c;IO(输入输出)&#xff0c;以下&#xff1a; cin是一个istream流对象&#xff0c;现在理解为标准输入即可。cout是一个ostream流对象&#xff0c;理解为标准输出即可。…...

上海剧某文化传播有限公司与喜某(上海)网络科技有限公司、上海喜某科技有限公司侵害著作权及不正当竞争纠纷案

上海剧某文化传播有限公司与喜某&#xff08;上海&#xff09;网络科技有限公司、上海喜某科技有限公司侵害著作权及不正当竞争纠纷案的详细情况如下&#xff1a; 基本案情&#xff1a; 上海剧某文化传播有限公司&#xff08;以下简称剧某公司&#xff09;是电视剧《宸汐缘》的…...

【c++篇】:模拟实现string类--探索字符串操作的底层逻辑

✨感谢您阅读本篇文章&#xff0c;文章内容是个人学习笔记的整理&#xff0c;如果哪里有误的话还请您指正噢✨ ✨ 个人主页&#xff1a;余辉zmh–CSDN博客 ✨文章所属专栏&#xff1a;c篇–CSDN博客 文章目录 前言一.string类的默认成员函数以及深拷贝1.基本框架2.默认成员函数…...

springboot配置logback.xml遇到的几个问题

最近项目用到对日志脱敏&#xff0c;经过研究通过logback实现了对日志脱敏&#xff0c;上篇文章中详细讲解了如果配置。但是还是对logback的配置不太了解。比如springboot怎么加载这个logback.xml的。 首先&#xff0c;默认情况下&#xff0c;logback.xml文件是放在类目录下&am…...

MySQL 5.7与MySQL 8.0对比

一、功能对比 JSON支持 MySQL 5.7&#xff1a;引入了JSON数据类型&#xff0c;允许用户存储和操作JSON格式的数据&#xff0c;这是NoSQL功能的一个重要补充。但相对于MySQL 8.0&#xff0c;其功能和性能较弱。MySQL 8.0&#xff1a;在JSON支持方面进行了重大改进&#xff0c;引…...

【代码随想录Day55】图论Part07

prim 算法精讲 题目链接/文章讲解&#xff1a;代码随想录 import java.util.*;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);// 读取顶点数和边数int vertexCount scanner.nextInt();int edgeCount scanner.nextI…...

软考在即!这些注意事项你提前了解!

11月软考马上就要开始了&#xff0c;但是&#xff0c;还有很多的考生&#xff0c;可能还不知道自己到底应该去了解些什么&#xff1f;本文将详细介绍机考注意事项及系统操作提示&#xff0c;帮助考生们备考无忧。 一、考试入场要求和考场规则 1、入场时间&#xff1a;考生需提…...

CMake知识点

参考&#xff1a; https://zhuanlan.zhihu.com/p/661284252 cmake使用教程&#xff08;实操版&#xff09;-CSDN博客 【CMake】CMake从入门到实战系列&#xff08;二&#xff09;——实例入手&#xff0c;讲解CMake的基本流程_cmake创建一个可执行目标的过程-CSDN博客 一、…...

git ls-remote

文章目录 1.简介2.格式3.选项4.示例5.小结参考文献 1.简介 git ls-remote 是一个 Git 命令&#xff0c;用于列出远程 Git 仓库的引用&#xff08;refs&#xff09;&#xff0c;包括分支、标签等。 这个命令非常有用&#xff0c;可以帮助你查看远程仓库中可用的分支和标签&…...

低代码平台如何通过AI赋能,实现更智能的业务自动化?

引言 随着数字化转型的加速推进&#xff0c;企业在日常运营中面临的业务复杂性与日俱增。如何快速响应市场需求&#xff0c;优化流程&#xff0c;并降低开发成本&#xff0c;成为各行业共同关注的核心问题。低代码平台作为一种能够快速构建应用程序的工具&#xff0c;因其可视化…...

计算疫情扩散时间

该专栏题目包含两部分&#xff1a; 100 分值部分题目 200 分值部分题目 所有题目都会陆续更新&#xff0c;订阅防丢失 题目描述 在一个地图中(地图由 N ∗ N N*N N∗N 个区域组成)&#xff0c;有部分区域被感染病菌。 感染区域每天都会把周围(上下左右)的4个区域感染。 请…...

【Windows11】24H2 内存占用高(截至10月31日)

文章目录 一、问题二、解决三、原因 一、问题 系统版本&#xff1a; 内存只有32GB。 以前只有我在运行数据处理程序的时候内存占用才会很高&#xff0c;日常情况下应该只有40%、50%左右的。 但是24H2&#xff0c;日常情况下内存占用80%以上。 而我只开了很少的应用&#…...

BotW-Save-Manager终极方案:深度解析《塞尔达传说:旷野之息》跨平台存档迁移技术

BotW-Save-Manager终极方案&#xff1a;深度解析《塞尔达传说&#xff1a;旷野之息》跨平台存档迁移技术 【免费下载链接】BotW-Save-Manager BOTW Save Manager for Switch and Wii U 项目地址: https://gitcode.com/gh_mirrors/bo/BotW-Save-Manager 你是否曾在Wii U上…...

OpenClaw多场景实战:Qwen3-VL:30B在飞书中的5个应用案例

OpenClaw多场景实战&#xff1a;Qwen3-VL:30B在飞书中的5个应用案例 1. 为什么选择OpenClawQwen3-VL:30B组合 去年我在团队内部尝试搭建智能助手时&#xff0c;发现市面上大多数方案要么需要将敏感数据上传到第三方平台&#xff0c;要么功能过于单一。直到遇到OpenClaw这个开…...

基于双层规划模型的微网新能源经济消纳共享储能优化配置:MATLAB代码复现及详细解读

(文章复现)考虑微网新能源经济消纳的共享储能优化配置matlab代码 参考资料《考虑微网新能源经济消纳的共享储能优化配置》 提出了考虑新能源消纳的共享储能电站容量功率配置方法&#xff0c;针对储能电站投运成本最低与微能源网运行经济性最优的多目标&#xff0c;建立了双层规…...

告别低效写作:盘点2026年标杆级的AI论文网站

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文网站&#xff0c;覆盖选题构思、文献整理、内容生成、格式排版全流程&#xff0c;帮你高效搞定论文写作。 一、全流程王者&#xff1a;一站式搞定论文全链路&#xff08;一天定稿首选&#xff…...

ChatGPT文档上传安全指南:如何避免敏感信息泄露

ChatGPT文档上传安全指南&#xff1a;如何避免敏感信息泄露 在当今AI应用开发热潮中&#xff0c;将文档上传至ChatGPT等大语言模型进行内容分析、总结或问答&#xff0c;已成为提升工作效率的常见场景。然而&#xff0c;许多开发者在兴奋地集成这一强大功能时&#xff0c;往往…...

自学C#的第三天

今天自学了c#&#xff0c;并看了相关的unity课程视频&#xff0c;加油&#xff0c;争取找到一份好的实习&#xff0c;简历投递效果不是很成功&#xff0c;打算给我的qt项目重新完善一下...

AI+医疗从模型到产品:做一个真正可用系统,需要跨过哪些坎?

# AI医疗从模型到产品&#xff1a;做一个真正可用系统&#xff0c;需要跨过哪些坎&#xff1f;做 AI医疗的人&#xff0c;常常会经历一个很像的阶段。前期我们把大部分精力放在模型上&#xff1a;换 backbone、调 loss、做多模态融合、补校准、压错误样本&#xff0c;最后终于把…...

AI Agent与传统RPA工具区别:深度解析企业智能自动化的代际跃迁

在人工智能技术从大语言模型的“对话式交互”向“行动式智能体”跨越的关键周期内&#xff0c;AI Agent&#xff08;智能体&#xff09;与传统 RPA&#xff08;机器人流程自动化&#xff09;工具的区别已成为企业数字化转型的核心议题。这一区别不仅体现在技术架构的演进上&…...

Python零基础到入门-数据类型的内置方法(1)

当我们在操作 字符串/列表&#xff0c;要想到对字符串或者列表做一些高级的操作字符串 判断这个字符是否以 某个字符开头列表 添加元素 删除元素 修改元素 。。。官方根据上边的功能&#xff0c;给我们提供了一些公共的接口&#xff08;方法&#xff09;【一】整数类型语法&…...

YOLOv11涨点改进| TPAMI 2026 |全网创新首发、注意力改进篇|引入ASSA自适应稀疏自注意力,顶刊万能涨点模块,含5种超强创新,适合目标检测,图像分割,图像分类,图像超分等任务高效涨点

一、本文介绍 🔥本文给大家介绍利用将 ASSA自适应稀疏自注意力模块改进 YOLOv11网络模型,可以显著提升模型的特征建模能力和复杂场景下的检测性能。ASSA通过自注意力机制在全局范围内建立不同空间位置之间的依赖关系,使网络能够充分利用全局上下文信息,从而增强特征表达能…...