Ripser.py学习 (2):展示
创始人
2025-05-31 12:06:38
0

文章目录

  • 1 一些基本库
  • 2 测试数据
  • 3 使用默认设置
  • 4 素数基础上的同伦
  • 5 设置需要计算的同伦类别
  • 6 指定撕裂滤流的最大半径
  • 7 绘制选项
    • 7.1 坐标轴范围
    • 7.2 颜色图
    • 7.3 生命周期

1 一些基本库

from ripser import ripser
from persim import plot_diagrams
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets

2 测试数据

data = datasets.make_circles(n_samples=100)[0] + 5 * datasets.make_circles(n_samples=100)[0] 
plt.scatter(data[:, 0], data[:, 1])
plt.show()

输出如下:

3 使用默认设置

计算H0H_0H0​和H1H_1H1​并绘制:

dgms = ripser(data)['dgms']
plot_diagrams(dgms, show=True)

输出如下:

当然也可以分开展示H0H_0H0​和H1H_1H1​:

plot_diagrams(dgms, plot_only=[0], ax=plt.subplot(121))
plot_diagrams(dgms, plot_only=[1], ax=plt.subplot(122))
plt.show()

输出如下:

4 素数基础上的同伦

通过设置coeff=p,计算p≥2p\geq2p≥2时的同伦:

dgms = ripser(data, coeff=3)['dgms']
plot_diagrams(dgms, plot_only=[1], title="Homology of Z/3Z", show=True)

输出如下:

5 设置需要计算的同伦类别

默认情况下只展示H0H_0H0​和H1H_1H1​。通过设置maxdim=p,可以计算H0,…,HpH_0,\dots,H_pH0​,…,Hp​。需要注意的是,p>1p>1p>1的计算相对较慢:

dgms = ripser(data, maxdim=2)['dgms']
plot_diagrams(dgms, show=True)

输出如下:

6 指定撕裂滤流的最大半径

用于限制VR complex的最大半径,图中的坐标值可以直接体现这一点:

dgms = ripser(data, thresh=1.5)['dgms']
plot_diagrams(dgms, show=True)

输出如下:

7 绘制选项

7.1 坐标轴范围

dgms = ripser(data)['dgms']
plot_diagrams(dgms, xy_range=[-2, 10, -1, 20], show=True)

输出如下:

7.2 颜色图

查看所有可用的颜色图

import matplotlib as mpl
print(mpl.style.available)

输出如下:

['Solarize_Light2', '_classic_test_patch', '_mpl-gallery', '_mpl-gallery-nogrid', 'bmh', 'classic', 'dark_background',
'fast', 'fivethirtyeight', 'ggplot', 'grayscale',
'seaborn', 'seaborn-bright', 'seaborn-colorblind', 'seaborn-dark', 'seaborn-dark-palette', 'seaborn-darkgrid',
'seaborn-deep', 'seaborn-muted', 'seaborn-notebook', 'seaborn-paper', 'seaborn-pastel', 'seaborn-poster',
'seaborn-talk', 'seaborn-ticks', 'seaborn-white', 'seaborn-whitegrid', 'tableau-colorblind10']

添加颜色图选项:

dgms = ripser(data)['dgms']
plot_diagrams(dgms, colormap='Solarize_Light2', show=True)

输出如下:

7.3 生命周期

plot_diagrams(dgms, lifetime=True, show=True)

输出如下:

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...