Polars简明基础教程十二:可视化(二)

news2024/12/25 12:48:53

 设置绘图后端

我们可以使用 hv.extension 更改绘图后端。但是,我们不在此处运行此单元格,因为它会导致下面的 Matplotlib/Seaborn 图表无法渲染。

注释:

hvPlot 利用 HoloViews 库来构建图表,并且可以使用多个后端进行渲染,包括 Bokeh(默认)和 Matplotlib。

hv.extension 是一个函数,用于设置 hvPlot 的绘图后端。当你使用 hv.extension 指定一个后端时,比如 Bokeh 或 Matplotlib,hvPlot 将会使用这个后端来渲染所有后续的图表。

然而,在 Jupyter Notebook 或类似的环境中,当你设置了一个特定的后端,如 Bokeh,然后尝试渲染一个依赖于不同后端(如 Matplotlib)的图表时,后一个图表可能不会正确显示,因为它试图使用已经被设置为 Bokeh 的环境来渲染。这是因为 Jupyter Notebook 的输出环境被配置为了 Bokeh,而不再是 Matplotlib。

如果在某个点上设置后端为 Bokeh,那么接下来使用 Matplotlib 或 Seaborn(基于 Matplotlib 的绘图库)绘制的图表可能不会显示,除非你重新设置或重置后端。

为了避免这个问题,你可以在使用 hvPlot 之前或之后单独运行设置后端的代码,或者在不同的会话或内核中处理不同的后端。这确保了每个后端都在其适当的环境中运行,不会相互干扰。如果你在一个脚本中需要使用多种后端,你可能需要手动切换后端,或者使用独立的绘图区域来确保兼容性。

 hv.extension('matplotlib')

可用的后端包括:

  1. Bokeh
  2. Plotly
  3. Matplotlib

可用的绘图类型

.plot 方法可用的绘图类型将随着时间的推移而发展。我们可以通过在 df.plot 上使用 Python 的 dir 函数来打印当前可用的方法列表,从而查看当前的可用列表。

​​​​​​​[el for el in dir(df.plot) if not el.startswith("_") ]

area
bar
barh
bivariate
box
dataset
density
errorbars
explorer
heatmap
hexbin
hist
kde
labels
line
ohlc
paths
points
polygons
scatter
step
table
vectorfield
violin

我们将在下面演示更多这些内容

折线图

我们创建一个简单的时间序列 DataFrame 来制作折线图

p = (
    pl.DataFrame(
        {
            "time":[0,1,2,3,4],
            "val":[0,1,2,3,4],
            
        }
    )
    .plot
    .line(
        x="time",
        y="val"
    )
)

hv.show(p)

要制作多线图,你可以:

  • 指定一列作为x轴维度,然后将所有其他数值列分别绘制为不同的线条
  • 将列名列表传递给 y 

因此,无论是否在此处注释掉 y 行,我们都会得到相同的图表。

p = (
    pl.DataFrame(
        {
            "time":[0,1,2,3,4],
            "val":[0.0,1,2,3,4],
            "vals2":[10.0,11,12,13,14]
            
        }
    )
    .plot
    .line(
        x="time",
         y=["val","vals2"]
    )
)

hv.show(p)

蜡烛图

OHLC 是一种有用的图表类型,用于可视化股票走势。

默认情况下,OHLC 会假定索引或第一个日期时间列应映射到 x 轴,而前四个非日期时间列分别对应于 O(开盘价)、H(最高价)、L(最低价)和 C(收盘价)组件。

因此,默认调用 ohlc 相当于:

df.plot.ohlc('date', ['open', 'low', 'high', 'close'], grid=True)

我们现在来画一个简单的蜡烛图:

import polars as pl
import hvplot as hv

data = [  ## 字段为:time, open, high,low,close
    (1., 10, 13, 5, 11),
    (2., 13, 17, 9, 12),
    (3., 13, 14, 11, 13),
    (4., 14, 15, 5, 11),
    (5., 15, 19, 8, 12),
    (6., 9, 15, 8, 10),
]
df = pl.DataFrame(
        data,
        schema=['time','open','high','low','close'],
        orient="row"
    )
p = df.plot.ohlc('time',['open','high','low','close'])
hv.show(p)

Polars简明基础教程系列

Polars简明基础教程一:Polars快速入门

Polars简明基础教程二:懒惰模式 1:引入懒惰模式

Polars简明基础教程三:懒惰模式 1:引入懒惰模式(续)

Polars简明基础教程四:懒惰模式 2:评估查询

Polars简明基础教程五:什么是Polars的“DataFrame(数据框)_上”

Polars简明基础教程六:什么是Polars的“DataFrame(数据框)_下”

Polars简明基础教程七:Series 和 DataFrame 以及它们之间的转换_A

Polars简明基础教程八:Series 和 DataFrame 以及它们之间的转换_B

Polars简明基础教程九:Numpy和Pandas的相互转换(1)

Polars简明基础教程十:Numpy和Pandas的相互转换(2)

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

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

相关文章

农业物联网6公里WiFi远距离传输模块,信号传输不再受限,抗干扰、连接快

在数字化时代,WiFi已成为我们生活中不可或缺的一部分。然而,你是否曾遇到过这样的困扰:在户外或大型场所,WiFi信号总是那么微弱,甚至完全无法连接。这时候,一种能够实现6公里远距离WiFi传输的神秘模块便应运…

go-zero中间件的使用

一、自定义中间件 1、在api中在服务中定义一个中间件,名字随便取 type PostDemoReq {Name string json:"name" validate:"required" // 姓名Age int64 json:"age" validate:"required,gte1,lte130" // 年龄// optional 表示可选,omi…

RAG与LLM原理及实践(11)--- Milvus hybrid search 源码分析及思想

目录 背景 hybrid search 源码分析 WeightedRanker 源码 hybrid search 核心 参数详解 基本入参 扩展入参 aysnc方式代码调用案例 说明 源码逻辑 prepare 调用过程 stub 调用结果 stub 调用过程 blocking 与 async 调用方式 深入内部core weightedRanker 的ch…

拼图小游戏单机版---java实现

一、为什么要在这个阶段做这样的一个项目? 1、理解Swing框架: 这个项目使用了Swing框架来构建图形用户界面(GUI)。通过实践,你可以更好地掌握如何使用Swing组件(如JFrame, JLabel, JMenuBar等)…

Redis20-通信协议

目录 RESP协议 概述 数据类型 模拟Redis客户端 RESP协议 概述 Redis是一个CS架构的软件,通信一般分两步(不包括pipeline和PubSub): 客户端(client)向服务端(server)发送一条命…

6RA8075-6DV62-0AA0模块可面价

6RA8075-6DV62-0AA0模块可面价 6RA8075-6DV62-0AA0模块可面价 6RA8075-6DV62-0AA0模块可面价 6ES7655-5DX40-2AA0模块接线图 6ES7655-5DX40-2AA0模块说明书 6ES7655-5DX40-2AA0模块选型手册 6ES7655-5DX40-2AA0功能模块是指数据说明、可执行语句等程序元素的集合&#xf…

permutation sequence(

60. Permutation Sequence class Solution:def getPermutation(self, n: int, k: int) -> str:def rec(k, l, ans, n):if(n0): return# 保留第一个位置,剩下数字的组合leftCom math.factorial(n - 1) #用于计算 (n-1) 的阶乘值ele k // leftCommod k % leftCo…

SpringBoot入门笔记

本文是看黑马老师讲课视频学习笔记整理 目录 入门案例 基于IDEA联网 基于Springboot官网创建 基于阿里云创建项目 手工创建 隐藏文件 入门案例解析: parent​编辑 starter 引导类 内嵌tomcat 入门案例 基于IDEA联网 RestController RequestMapping("/books&…

Electron:摄像头录制和屏幕录制

摄像头录制 main.js const { app, BrowserWindow} require(electron)let mainWin null const createWindow () > {mainWin new BrowserWindow({width: 800,height: 600,title: 自定义菜单,webPreferences: {// 允许渲染进程使用nodejsnodeIntegration: true,// 允许渲…

首站,北京!OpenCSG邀您共赴AI之约【2024戴尔科技峰会预告】

图片来源:戴尔 在数字化浪潮的推动下,人工智能正成为推动社会进步的关键力量及带来生产力的提升。据相关数据显示,全球企业对人工智能的投资已增长50%,预计到2025年,人工智能将为全球经济贡献15.7万亿美元。人工智能将革新我们的生…

PyTorch深度学习实战(12)—— 神经网络工具箱nn.functional

1. nn.functional torch.nn中还有一个很常用的模块:nn.functional。torch.nn中的大多数layer,在functional中都有一个与之相对应的函数。nn.functional中的函数和nn.Module的主要区别在于:使用nn.Module实现的layer是一个特殊的类&#xff0c…

【人工智能】Transformers之Pipeline(九):物体检测(object-detection)

目录​​​​​​​ 一、引言 二、物体检测(object-detection) 2.1 概述 2.2 技术原理 2.3 应用场景 2.4 pipeline参数 2.4.1 pipeline对象实例化参数 2.4.2 pipeline对象使用参数 2.4 pipeline实战 2.5 模型排名 三、总结 一、引言 pipel…

黑马头条vue2.0项目实战(八)——文章评论

目录 1. 展示文章评论列表 1.1 准备组件 1.2 获取文章评论数据并展示 1.3 展示文章评论总数量 1.4 文章评论项 2. 评论点赞 3. 发布文章评论 3.1 准备弹出层 3.2 封装发布文章评论组件 3.3 请求发布 4. 评论回复 4.1 准备回复弹层 4.2 封装内容组件 4.3 处理头部…

【深度学习】创建和训练Transformer神经网络模型,将葡萄牙语翻译成英语

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1. 安装2. 数据处理2.1 下载数据集2.2 设置标记器2.3 使用tf.data设置数据管道 3. 测试数据集4. 定义组件4.1 嵌入和位置编码层4.2 添加并规范化4.3 基础注意力…

Android 12系统源码_多屏幕(二)模拟辅助设备功能开关实现原理

前言 上一篇我们通过为Android系统开启模拟辅助设备功能开关,最终实现了将一个Activity显示到多个屏幕的效果。 本篇文章我们具体来分析一下当我们开启模拟辅助设备功能开关的时候,Android系统做了什么哪些操作。 一、模拟辅助设备功能开关应用位置 …

Qt5编译qmqtt库使用MQTT协议连接华为云IOT完成数据上传与交互

一、前言 随着物联网技术的发展,越来越多的设备通过网络互相连接,形成了庞大的智能系统。这些系统能够收集、分析并响应各种数据,从而实现自动化控制和智能化管理。在这个背景下,MQTT 成为了一个广泛使用的轻量级消息传输协议,特别适用于资源受限的环境,如移动应用或远程…

WebSocket 实现:注解与原生方式对比

WebSocket 作为一种在单个长连接上进行全双工、双向通信的协议,已经成为现代Web应用中实现实时通信的重要技术。本文将探讨如何使用注解和原生方式来实现 WebSocket,并对这两种方法进行比较。 一、注解方式实现 WebSocket 在许多现代Java框架中&#x…

GBJ406-ASEMI无人机专用GBJ406

编辑:ll GBJ406-ASEMI无人机专用GBJ406 型号:GBJ406 品牌:ASEMI 封装:GBJ-4 批号:2024 现货:50000 最大重复峰值反向电压:600V 最大正向平均整流电流(Vdss):4A 功率(Pd)&am…

43.【C语言】指针(重难点)(F)

目录 15.二级指针 *定义 *演示 16.三级以及多级指针 *三级指针的定义 *多级指针的定义 17.指针数组 *定义 *代码 18.指针数组模拟二维数组 往期推荐 15.二级指针 *定义 之前讲的指针全是一级指针 int a 1; int *pa &a;//一级指针 如果写成 int a 1; int *pa &a…

MES生产执行系统源码,支持 SaaS 多租户,技术架构:springboot + vue-element-plus-admin

MES的定义与功能 MES是制造业中一种重要的管理信息系统,用于协调和监控整个生产过程。它通过收集、分析和处理各种生产数据,实现对生产流程的实时跟踪和监控,并为决策者提供准确的数据支持。MES涵盖了工厂运营、计划排程、质量管理、设备维护…