Skip to main content

A high-performance matplotlib-compatible plotting library powered by Rust

Project description

rsplotlib

一个由 Rust 强力驱动的高性能 Python 绘图库,提供 Matplotlib 兼容 API

Python Rust License: MIT PyO3 plotters


目录


项目简介

rsplotlib 是一个跨语言的 Python 绘图库,核心渲染引擎完全使用 Rust 编写,通过 PyO3 提供与 Matplotlib 兼容的 Python API。项目的目标是在保持与现有 Matplotlib 代码最大兼容性的同时,利用 Rust 的内存安全和零成本抽象带来显著的性能提升。

设计理念

  • API 优先:提供与 Matplotlib 高度一致的接口,降低迁移成本
  • 性能为王:将性能关键路径(渲染、批量操作)下沉到 Rust 层
  • 零额外依赖:不依赖原生 Matplotlib 的安装,仅需 Python 解释器即可运行
  • 跨平台一致:在 macOS、Linux、Windows 上提供相同的渲染质量

核心特性

丰富的图表类型

  • 基础图表:折线图、散点图、柱状图、水平柱状图
  • 统计图表:直方图、箱线图、饼图、误差棒图、茎叶图、阶梯图
  • 高级图表:堆叠面积图、热力图/图像显示、填充区域图

颜色映射与颜色条

  • 50+ 内置颜色映射viridisplasmainfernomagmacividisjetcoolwarmRdBuBluesGreensRedshotcoolgrayterraintwilight 等,任意名称加 _r 后缀即可反转(如 viridis_r
  • 颜色条 Colorbarplt.colorbar() / fig.colorbar(),Rust 渲染,支持 locationorientationshrinkaspectpadfractionlabelextendticksformat
  • 颜色归一化LogNorm / Normalize(来自 rsplotlib.colors),通过 norm= 参数使用

图像输入 / 输出

  • imshow:支持二维数据(经颜色映射,可用对数归一化)与 RGB/RGBA 图像,支持 alphaorigininterpolation 控制
  • imread / imsave:读写 PNG/JPEG 图像

数学公式渲染

  • LaTeX 风格 $...$:上下标、\frac\sqrt[n]{}、希腊字母、重音与字体样式命令,在标题、轴标签、textannotate、图例、柱状图标签中生效

辅助元素

  • 参考线:水平参考线 (axhline)、垂直参考线 (axvline)
  • 区间高亮:水平区间填充 (axhspan)、垂直区间填充 (axvspan)
  • 任意斜率参考线axline — 通过两点绘制贯穿全图的任意角度参考线
  • 批量线hlines / vlines — Rust 层批量实现,避免 Python 级 for 循环
  • 文本标注texttitle、带箭头的 annotate(支持 arrowprops

坐标与布局

  • 多子图支持:subplots()subplot()、网格布局
  • 双坐标轴:twinx() / twiny()
  • 对数坐标:semilogx()semilogy()loglog()
  • 网格显示、图例、坐标轴范围、刻度自定义

输出与分辨率

  • PNG:位图输出,支持 DPI 控制
  • SVG:矢量图输出,可无损缩放
  • 自定义 DPIsavefig(filename, dpi=300) 支持任意分辨率输出
  • 像素尺寸 DPI:PNG 元数据中写入 DPI 信息,方便出版使用

散点图增强

  • 每点独立颜色ax.scatter(x, y, c=['red', 'blue', 'green'])
  • 每点独立大小ax.scatter(x, y, s=[10, 20, 30, 40])
  • 颜色+大小同时独立:Rust 层实现,零 Python 循环开销

样式管理

  • plt.style 模块:兼容 Matplotlib 的样式接口
  • plt.style.use():应用预设样式
  • plt.style.available:查询可用样式
  • plt.rcParams:全局参数配置(字体族、字号等)

字体与国际化

  • 跨平台字体解析:自动查找系统可用字体
  • CJK 支持:内置中文、日文、韩文字体自动检测
  • 自定义字体注册register_sans_serif_font(path) 注册任意字体文件

安装指南

前置依赖

依赖 版本要求 说明
Python 3.10+ CPython 实现
Rust 1.70+ 从源码构建时需要
maturin 1.13+ Rust-Python 包构建工具

方法一:从 PyPI 安装(推荐)

已为 Linux(x86_64/aarch64)、macOS(universal2)、Windows(x64)在 Python 3.10-3.14 上发布预编译 wheel,无需 Rust 工具链:

pip install rsplotlib

方法二:使用 maturin 从源码构建(推荐开发者)

# 1. 克隆项目
git clone https://github.com/YJ-Niu/rsplotlib.git
cd rsplotlib

# 2. 构建并安装(自动编译 Rust 并安装到当前 Python 环境)
pip install maturin
maturin develop --release

方法三:构建 wheel 包

# 使用项目提供的构建脚本(macOS/Linux 直接运行;Windows 请在 Git Bash 或 WSL 中运行)
./build_wheel.sh

# 安装生成的 wheel
pip install target/wheels/rsplotlib-*.whl

方法四:仅编译 Rust 扩展(调试用)

# 编译 Rust cdylib
cargo build --release

# 将编译产物复制为正确的 Python 扩展模块名称
# macOS:
cp target/release/librsplotlib.dylib python/rsplotlib/rsplotlib.cpython-39-darwin.so

# Linux:
# cp target/release/librsplotlib.so python/rsplotlib/rsplotlib.cpython-39-x86_64-linux-gnu.so

# 从源码目录使用
export PYTHONPATH="$PWD/python:$PYTHONPATH"

验证安装

>>> import rsplotlib.pyplot as plt
>>> fig, ax = plt.subplots()
>>> ax.plot([1, 2, 3], [1, 4, 9])
>>> fig.savefig('test.png')
# ✅ 生成 test.png 即安装成功

快速入门

基础使用:折线图

from rsplotlib import pyplot as plt
from rsplotlib.pylab import mpl

# 可选:配置中文字体
mpl.rcParams['font.sans-serif'] = ['PingFang SC', 'Microsoft YaHei', 'Arial']

# 创建 Figure 和 Axes
fig, ax = plt.subplots(figsize=(8, 6))

# 绘制数据
x = [0, 1, 2, 3, 4, 5]
y1 = [1, 2, 4, 8, 16, 32]
y2 = [32, 16, 8, 4, 2, 1]

ax.plot(x, y1, label='指数增长', lw=2.0)
ax.plot(x, y2, label='指数衰减', lw=2.0, linestyle='--')

# 装饰图表
ax.set_title('基础折线图示例')
ax.set_xlabel('时间')
ax.set_ylabel('数值')
ax.legend()
ax.grid(True)

# 保存为高分辨率 PNG
fig.savefig('line_plot.png', dpi=300)

散点图:每点独立颜色和大小

import random
from rsplotlib import pyplot as plt

# 生成随机数据
random.seed(42)
n = 50
x = [random.gauss(0, 1) for _ in range(n)]
y = [random.gauss(0, 1) for _ in range(n)]

# 每点独立颜色和大小(Rust 层处理,Python 层零循环)
colors = ['red' if xi > 0 else 'blue' for xi in x]
sizes = [max(10, abs(xi * yi * 50)) for xi, yi in zip(x, y)]

fig, ax = plt.subplots()
ax.scatter(x, y, c=colors, s=sizes, alpha=0.7)
ax.set_title('散点图:颜色/大小独立')
fig.savefig('scatter.png')

区间高亮与参考线

from rsplotlib import pyplot as plt

fig, ax = plt.subplots()
x = list(range(-5, 6))
y = [xi**2 for xi in x]

# 绘制数据
ax.plot(x, y, 'b-', lw=2, label='y = x²')

# 垂直区间高亮
ax.axvspan(-1, 1, color='yellow', alpha=0.3, label='最小值区域')

# 水平区间高亮
ax.axhspan(0, 5, color='lightgreen', alpha=0.2)

# 水平/垂直参考线
ax.axhline(y=0, color='gray', linestyle=':', linewidth=1)
ax.axvline(x=0, color='gray', linestyle=':', linewidth=1)

# 任意斜率参考线(贯穿整张图)
ax.axline((0, 0), (1, 1), color='red', linestyle='--', linewidth=1.5)

ax.legend()
fig.savefig('reference_lines.png')

箭头标注

from rsplotlib import pyplot as plt

fig, ax = plt.subplots()

# 绘制曲线
x = list(range(-10, 11))
y = [xi**3 - 3*xi for xi in x]
ax.plot(x, y, 'b-', lw=2)

# 添加箭头标注
ax.annotate('局部极大值', xy=(-1, 2), xytext=(-8, 500),
            fontsize=11, color='red',
            arrowprops={'arrowstyle': '->', 'arrowsize': 1.0})

ax.annotate('局部极小值', xy=(1, -2), xytext=(3, -500),
            fontsize=11, color='blue',
            arrowprops={'arrowstyle': '->', 'arrowsize': 1.0})

ax.annotate('原点', xy=(0, 0), xytext=(5, 200),
            fontsize=11, color='darkgreen')

ax.set_title('ax.annotate:带箭头的文本标注')
fig.savefig('annotations.png')

批量水平线/垂直线(Rust 层实现)

from rsplotlib import pyplot as plt

fig, ax = plt.subplots()
ax.plot([0, 10], [0, 10], 'k-', lw=1)

# 批量绘制水平线(Rust 层循环,Python 零开销)
ax.hlines([2, 4, 6, 8], color='steelblue', linestyle='--', linewidth=1)

# 批量绘制垂直线
ax.vlines([2, 4, 6, 8], color='darkorange', linestyle=':', linewidth=1)

ax.set_title('hlines / vlines:批量参考线(Rust 层实现)')
fig.savefig('hlines_vlines.png')

多子图

from rsplotlib import pyplot as plt

# 2x2 网格
fig, axes = plt.subplots(2, 2)

# axes 是一个扁平列表
axes[0].plot([1, 2, 3], [1, 4, 9])
axes[0].set_title('子图 1')

axes[1].bar(['A', 'B', 'C'], [3, 7, 2])
axes[1].set_title('子图 2')

axes[2].scatter([1,2,3,4], [4,3,2,1], c=['red','green','blue','orange'])
axes[2].set_title('子图 3')

axes[3].hist([0.5, 1.2, 1.8, 2.1, 2.5, 3.0, 3.2, 3.8, 4.1, 4.5], bins=5)
axes[3].set_title('子图 4')

fig.savefig('subplots.png', dpi=200)

模块级接口(无需显式创建 Axes)

from rsplotlib import pyplot as plt

# 直接使用 plt.* 接口
plt.figure()
plt.plot([1, 2, 3], [1, 2, 3], 'r-')
plt.axhline(y=2, color='gray', linestyle='--')
plt.axvspan(1, 2, color='yellow', alpha=0.3)
plt.title('模块级接口')
plt.savefig('module_level.png')

功能清单

绘图函数

函数 说明 模块级接口 Axes 接口
plot() 折线图
scatter() 散点图(支持颜色/大小数组)
bar() 柱状图
barh() 水平柱状图
hist() 直方图
pie() 饼图
boxplot() 箱线图
fill_between() 曲线间填充
errorbar() 误差棒图
stem() 茎叶图
step() 阶梯图
imshow() 图像/热力图
stackplot() 堆叠面积图
semilogx() x 轴对数坐标折线图
semilogy() y 轴对数坐标折线图
loglog() 双对数坐标折线图
colorbar() 为 mappable 添加颜色条 ✅(plt/fig)
imread() 读取 PNG/JPEG 图像为数组
imsave() 将数组写出为 PNG/JPEG

辅助元素

函数 说明 模块级接口 Axes 接口
axhline() 水平参考线
axvline() 垂直参考线
axhspan() 水平区间填充
axvspan() 垂直区间填充
axline() 任意斜率参考线
hlines() 批量水平线 (Rust 层)
vlines() 批量垂直线 (Rust 层)
text() 文本标注
annotate() 带箭头文本标注

图表配置

函数 说明
title() / ax.set_title() 设置图表标题(loc='left'/'center'/'right'
xlabel() / ax.set_xlabel() 设置 X 轴标签(loc='left'/'center'/'right'
ylabel() / ax.set_ylabel() 设置 Y 轴标签(loc='top'/'center'/'bottom'
grid() 显示/隐藏网格
legend() 显示图例
xlim() / ylim() 设置坐标轴范围
xticks() / yticks() 设置刻度位置和标签
xscale() / yscale() 设置坐标缩放(linear / log
margins() 设置自动缩放边距
box() 设置坐标轴边框显示
minorticks_on() / minorticks_off() 次要刻度显示控制

子图与布局

函数 说明
subplots(nrows, ncols) 创建子图网格
subplot(nrows, ncols, index) 创建单个子图
twinx() / twiny() 创建双坐标轴
tight_layout() 自动调整布局
fig.set_size(w, h) 设置图形像素尺寸

图形控制

函数 说明
figure() 创建新 Figure 对象
savefig(filename, dpi=None) 保存到文件,支持自定义 DPI
show() 显示图形(保存到默认位置)
gca() 获取当前 Axes
gcf() 获取当前 Figure
cla() 清空当前 Axes
clf() 清空当前 Figure
close() 关闭当前 Figure

API 参考

Figure.savefig

保存图形到文件。

fig.savefig(filename, dpi=None)

参数:

  • filename (str): 输出文件路径。支持 .png.svg 扩展名
  • dpi (float, 可选): 分辨率(每英寸点数)。默认使用 Figure 创建时的 DPI

示例:

fig.savefig('plot.png')              # 默认 DPI
fig.savefig('plot_hd.png', dpi=150)  # 屏幕分辨率
fig.savefig('plot_print.png', dpi=300)  # 印刷分辨率
fig.savefig('plot.svg')              # 矢量图

Axes.scatter — 增强版

散点图,支持每点独立颜色/大小。

ax.scatter(x, y, s=20.0, c=None, marker='o', label=None, alpha=1.0, **kwargs)

参数:

  • x, y (list/array): 点坐标数据
  • s (float 或 list/array): 单个浮点值用于所有点,或数组表示每点大小
  • c (str 或 list[str]): 单个颜色字符串,或颜色字符串数组
  • marker (str): 标记形状,支持 'o', 's', '^', 'v', 'D', '*', '+', 'x', '<', '>'
  • label (str): 图例标签
  • alpha (float): 透明度 (0.0-1.0)
  • **kwargs: 额外参数,支持 color(作为 c 的别名)

示例:

# 单色散点
ax.scatter(x, y, c='red', s=50)

# 每点独立颜色
ax.scatter(x, y, c=['red', 'green', 'blue', ...], s=50)

# 每点独立大小
ax.scatter(x, y, s=[10, 20, 30, ...], c='blue')

# 颜色+大小同时独立(Rust 层批量处理)
ax.scatter(x, y, c=colors, s=sizes, marker='D', alpha=0.8)

Axes.axhspan / axvspan

区间高亮填充。

ax.axhspan(ymin, ymax, color=None, alpha=0.3)
ax.axvspan(xmin, xmax, color=None, alpha=0.3)

参数:

  • ymin, ymax (float): 水平区间的 y 轴上下界(数据坐标)
  • xmin, xmax (float): 垂直区间的 x 轴左右界(数据坐标)
  • color (str): 填充颜色,默认浅蓝灰色
  • alpha (float): 透明度,默认 0.3

Axes.axline

通过两点绘制贯穿全图的任意斜率参考线。

ax.axline(xy1, xy2, color=None, linestyle=None, linewidth=None)

参数:

  • xy1 (tuple): 起点坐标 (x1, y1)
  • xy2 (tuple): 终点坐标 (x2, y2)
  • color (str): 线颜色
  • linestyle (str): 线型,'-' (实线), '--' (虚线), ':' (点线), '-.' (点划线)
  • linewidth (float): 线宽

Axes.annotate

添加带箭头的文本标注。

ax.annotate(text, xy, xytext=None, fontsize=12.0, color='black',
            arrowprops=None, arrowstyle=None, arrowsize=1.0)

参数:

  • text (str): 标注文本
  • xy (tuple): 被标注点坐标 (x, y)
  • xytext (tuple, 可选): 文本放置位置。若提供,自动从该位置绘制箭头到 xy
  • fontsize (float): 字体大小,默认 12.0
  • color (str): 文本和箭头颜色,默认 'black'
  • arrowprops (dict, 可选): 箭头属性字典,支持:
    • arrowstyle: 箭头样式(如 '->', '-|>'
    • arrowsize: 箭头相对大小
  • arrowstyle (str, 可选): 独立于 arrowprops 的箭头样式
  • arrowsize (float, 可选): 独立于 arrowprops 的箭头大小

hlines / vlines(Rust 层批量实现)

绘制多条水平线或垂直线。所有内部循环在 Rust 层完成,避免 Python 级循环开销。

ax.hlines(y, color=None, linestyle=None, linewidth=None)
ax.vlines(x, color=None, linestyle=None, linewidth=None)

参数:

  • y / x (list/array): 位置列表

Axes.imshow / plt.imshow

将二维数据显示为热力图,或渲染 RGB/RGBA 图像。

ax.imshow(x, cmap=None, norm=None, aspect=None, interpolation=None,
          alpha=None, vmin=None, vmax=None, origin=None, extent=None)

参数:

  • x (二维数组或 HxWx3/4 图像): 标量场或 RGB(A) 图像
  • cmap (str): 二维数据的颜色映射名(默认 'viridis'),加 _r 反转
  • norm (Normalize / LogNorm / 'linear' / 'log'): 数值到颜色的映射
  • interpolation (str): 'none' / 'nearest' 为块状缩放,其余为平滑模式
  • origin (str): 'upper'(默认)或 'lower'
  • vmin / vmax (float): 数值范围裁剪;alpha (float): 不透明度
  • 注意:extent 为兼容签名而接受,但当前被忽略
im = ax.imshow([[1, 2], [3, 4]], cmap='plasma', origin='lower')

colorbar

为 mappable(如 imshow / scatter 的返回值)添加颜色条。

plt.colorbar(mappable=None, ax=None, **kwargs)
fig.colorbar(mappable=None, ax=None, **kwargs)

生效的关键字参数: locationorientationshrinkaspectpadfractionlabelextendticksformat。其余 matplotlib 关键字虽被接受, 但当前不生效。

im = plt.imshow([[1, 2], [3, 4]], cmap='viridis')
plt.colorbar(im, label='数值', shrink=0.8)

颜色归一化(LogNorm)

from rsplotlib.colors import LogNorm
plt.imshow(data, cmap='viridis', norm=LogNorm())
plt.colorbar()

数学公式($...$

所有承载文本的接口都支持美元符号之间的 LaTeX 风格公式,包括标题、轴标签、 textannotate、图例标签与柱状图标签。

plt.title(r'$\alpha^2 + \frac{1}{2}\sqrt{x}$')

支持:上下标、\frac\sqrt[n]{}、希腊字母、重音与字体样式命令。


性能优势

rsplotlib 在架构设计上通过"分层下沉"策略实现性能优化:

架构分层

┌──────────────────────────────────────────────┐
│  Python 层 (API 兼容层)                      │
│  · pyplot.py   (Matplotlib 兼容接口)         │
│  · api.py      (参数规范化 / 别名映射)       │
│  · _patch_*    (方法补丁 / 动态分发)         │
├──────────────────────────────────────────────┤
│  Rust 层 (高性能核心)                        │
│  · lib.rs      (模块注册 / 字体系统)         │
│  · figure.rs   (Figure 对象 / 渲染调度)      │
│  · axes.rs     (Axes 对象 / 数据解析)        │
│  · elements.rs (绘图元素数据结构)            │
│  · axes_render_elements.rs (plotters 渲染)   │
│  · pyfuncs.rs  (模块级函数暴露)              │
└──────────────────────────────────────────────┘

性能关键路径下沉到 Rust

功能 传统实现 rsplotlib 实现
scatter(c=colors) Python 层遍历每个点 Rust 层 ScatterMulti 统一渲染
scatter(s=sizes) Python 层遍历每个点 Rust 层统一大小数组处理
hlines([y1, y2, y3, ...]) Python for 循环多次调用 axhline Rust 层单次调用批量处理
vlines([x1, x2, x3, ...]) Python for 循环多次调用 axvline Rust 层单次调用批量处理
savefig(dpi=300) 无 DPI 支持 / Python 层缩放 Rust 层直接写入 PNG DPI 元数据
hist() / boxplot()(大数据) Python 层物化每个数值 零拷贝缓冲区下沉到 Rust
百万级点折线 渲染每一段线段 自动 min/max(M4)抽稀
大图 imshow 单线程逐像素 多线程按行渲染
重复文本渲染 每个字形重复栅格化 按 (字体, 字符, 字号) 缓存字形

为什么选择 Rust + Python 混合架构

  1. 开发效率:Python 层快速迭代 API 设计、参数校验
  2. 执行性能:Rust 层处理渲染、循环、内存密集型计算
  3. 内存安全:Rust 编译期保证无数据竞争
  4. 零额外依赖:无原生 Matplotlib 安装要求

项目结构

rsplotlib/
├── python/                          # Python 包装层
│   └── rsplotlib/
│       ├── __init__.py              # 包入口与导出
│       ├── api.py                   # 模块级 API 函数定义
│       ├── pyplot.py                # Matplotlib 兼容 pyplot 接口
│       │                            # (含中文 docstring, IDE 悬停提示)
│       ├── pylab.py                 # pylab 风格接口,提供 mpl.rcParams
│       ├── style.py                 # plt.style 样式管理
│       ├── _rcparams.py             # rcParams 配置管理
│       ├── _font_resolver.py        # 系统字体路径解析
│       ├── _figure_defaults.py      # Figure 默认配置
│       ├── gridspec.py              # 网格布局管理
│       └── ticker.py                # 刻度定位器 (AutoLocator, MaxNLocator)
│
├── src/                             # Rust 核心实现
│   ├── lib.rs                       # 库入口,Python 模块注册
│   ├── figure.rs                    # Figure 类 (savefig, DPI 管理)
│   ├── axes.rs                      # Axes 类 (所有绘图方法)
│   ├── axes_render_elements.rs      # 元素渲染引擎 (基于 plotters)
│   ├── axes_bounds.rs               # 坐标边界计算
│   ├── axes_title.rs                # 标题渲染
│   ├── axes_legend.rs               # 图例渲染
│   ├── axes_grid.rs                 # 网格线渲染
│   ├── axes_mesh.rs                 # 坐标轴刻度
│   ├── axis.rs                      # Axis 数据结构
│   ├── elements.rs                  # 绘图元素枚举 (Line/Scatter/Bar/...)
│   ├── pyfuncs.rs                   # 暴露给 Python 的模块级函数
│   ├── colors.rs                    # 颜色解析 (命名色, RGB, HSL)
│   ├── colormap.rs                  # 颜色映射
│   ├── marker.rs                    # 标记形状渲染
│   └── text_utils.rs                # 文本工具函数
│
├── Cargo.toml                       # Rust 依赖 (PyO3, plotters, png)
├── pyproject.toml                   # Python 包配置 (maturin)
├── build_wheel.sh                   # wheel 包构建脚本
├── README.md                        # 英文说明
└── README_zh.md                     # 中文说明(本文档)

开发与贡献

本地开发环境

# 1. 安装 Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# 2. 安装 maturin
pip install maturin

# 3. 开发模式构建(自动编译 Rust 并安装到当前 Python 环境)
maturin develop --release

# 4. 运行交互式测试
python3 -c "
from rsplotlib import pyplot as plt
fig, ax = plt.subplots()
ax.plot([1,2,3], [1,4,9])
fig.savefig('/tmp/test.png')
print('OK')
"

开发工作流

  1. 理解需求:分析需要实现的 Matplotlib 功能
  2. Rust 层实现:在 src/ 中添加核心逻辑
    • 新增绘图元素:修改 elements.rs
    • 添加绘图方法:修改 axes.rs
    • 添加渲染逻辑:修改 axes_render_elements.rs
    • 暴露模块级函数:修改 pyfuncs.rs
    • 注册:修改 lib.rs
  3. Python 层包装:在 python/rsplotlib/ 中添加 API
    • 添加中文 docstring(供 IDE 悬停显示)
    • 处理参数别名(如 lwlinewidth
    • 将数组参数路由到 Rust 层批量方法
  4. 编译测试maturin develop --release
  5. 验证结果:生成图像进行目视检查

为 Python 层添加文档(IDE 悬停)

Python 包装层的函数都包含详细的中文 docstring,当用户在 IDE(VS Code、PyCharm 等)中悬停在函数上时,会自动显示中文说明和参数列表。

def axhspan(ymin, ymax, **kwargs):
    """绘制水平方向的区间填充。

    用法:
        plt.axhspan(0, 1, color='yellow', alpha=0.3)

    Args:
        ymin: y 轴下限
        ymax: y 轴上限
        color: 填充颜色 (默认蓝灰色)
        alpha: 透明度 (0.0-1.0, 默认 0.3)
    """
    ...

贡献指南

欢迎提交 PR!请在提交时包含:

  • 清晰的功能说明或问题修复描述
  • 适用时包含生成的示例图像
  • 确保同时更新 README.mdREADME_zh.md

已知限制

  • 当前版本不支持 3D 绘图
  • 不支持动画/交互式图表
  • contour / violinplot / hexbin 为占位实现
  • imshow(extent=...) 为兼容签名而接受,但当前被忽略
  • colorbar() 仅部分 matplotlib 关键字生效(见 colorbar
  • data= 当前仅 scatter 支持(plot 不支持)

字体配置

rsplotlib 支持通过 mpl.rcParams 自定义字体,同时支持直接注册字体文件。

自动检测的系统字体

平台 常用字体
macOS Arial, Helvetica, PingFang SC, STHeiti, Hiragino Sans GB, Arial Unicode MS
Linux DejaVu Sans, Liberation Sans, Noto Sans CJK SC, WenQuanYi Micro Hei
Windows Microsoft YaHei, SimHei, SimSun, Arial

自定义字体配置

from rsplotlib.pylab import mpl
from rsplotlib import pyplot as plt

# 设置 sans-serif 字体族(优先顺序)
mpl.rcParams['font.sans-serif'] = ['PingFang SC', 'Microsoft YaHei', 'DejaVu Sans']

# 设置默认字体大小
mpl.rcParams['font.size'] = 12

直接注册字体文件

from rsplotlib import rsplotlib as _rs

# 从任意 .ttf/.otf/.ttc 文件注册为 sans-serif 字体
_rs.register_sans_serif_font('/path/to/your/custom-font.ttf')

许可证

MIT License — 详见 LICENSE 文件。


致谢

  • PyO3 — Rust ↔ Python 绑定库,版本 0.29
  • plotters — Rust 绘图库,提供底层渲染能力
  • Matplotlib — Python 绘图生态标准,提供 API 设计参考
  • maturin — Rust Python 包构建与发布工具

相关链接


最后更新:2026-07-12 · 版本 v0.2.9

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rsplotlib-0.2.9.tar.gz (305.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

rsplotlib-0.2.9-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

rsplotlib-0.2.9-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

rsplotlib-0.2.9-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.17+ x86-64

rsplotlib-0.2.9-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ x86-64

rsplotlib-0.2.9-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

rsplotlib-0.2.9-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

rsplotlib-0.2.9-cp314-cp314-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.14Windows x86-64

rsplotlib-0.2.9-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

rsplotlib-0.2.9-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

rsplotlib-0.2.9-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.5 MB view details)

Uploaded CPython 3.14macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

rsplotlib-0.2.9-cp313-cp313-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.13Windows x86-64

rsplotlib-0.2.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

rsplotlib-0.2.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

rsplotlib-0.2.9-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.5 MB view details)

Uploaded CPython 3.13macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

rsplotlib-0.2.9-cp312-cp312-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.12Windows x86-64

rsplotlib-0.2.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

rsplotlib-0.2.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

rsplotlib-0.2.9-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.5 MB view details)

Uploaded CPython 3.12macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

rsplotlib-0.2.9-cp311-cp311-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.11Windows x86-64

rsplotlib-0.2.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

rsplotlib-0.2.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

rsplotlib-0.2.9-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.5 MB view details)

Uploaded CPython 3.11macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

rsplotlib-0.2.9-cp310-cp310-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.10Windows x86-64

rsplotlib-0.2.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

rsplotlib-0.2.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

rsplotlib-0.2.9-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.5 MB view details)

Uploaded CPython 3.10macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

File details

Details for the file rsplotlib-0.2.9.tar.gz.

File metadata

  • Download URL: rsplotlib-0.2.9.tar.gz
  • Upload date:
  • Size: 305.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for rsplotlib-0.2.9.tar.gz
Algorithm Hash digest
SHA256 80921c1cf81269fcd9f28f4a3efa6c31f65f3c7711339451c5da094b48a2ec9a
MD5 fbf85c3c124b0bf190f4a1b902d17c32
BLAKE2b-256 b458aa44c334021205484bc0eaa149e9dace0abaff6d566eafe1bc466d64d2da

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 52cb85de56bdc35f089a19480996b2d7fa2bb2dd1e63b4ba196accea05381b97
MD5 b9eb471f0764555029f08f8bc1f3e12a
BLAKE2b-256 6c5fd69b4fc8ab1ea78a1747ab74cc899b49925bd69e2b7650c9ac20912d26bd

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 92cf53ec067aa02cc9a1914b8e897a9a571fbbd6d402fc26c5453ef4f16bcffe
MD5 1055f7de734a2d5a60c4c491a12ded00
BLAKE2b-256 ee9aa95860d8b18275c1fa8bf27631cd93a1ecf4496275492361d39a55fe3d51

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6842d0312a3f52abd26253d3d4edb9c7a07b1d3210f99a01c7e280ce9313fe9c
MD5 c76d49e0a76800db060d0a89bfbe4264
BLAKE2b-256 e795ab4e04d8c3aa4c87426c43cb8d972ac3cd5ea7cd7e5940b3d2f411b10f17

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7ebce86064014eaaafdb4a9a07a7f6462f3029627e3424a1e35f7d79bdbf77d6
MD5 64372a1e41362f6e8b83e4820325524e
BLAKE2b-256 e7ff18ba23f75241cd978c339aee0d9bcff61ff3a6acebb9d81add99d034a8e6

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 983ad5a2520738aaf14b8949e8de9e5369a7faf8fe4f3bde92a4f12d5ab46784
MD5 7452941fc966b34db15b583a88667953
BLAKE2b-256 01b361c46e6fee3d53b10680b9770f915b3300db639bb61ccc84c8e0f5e04fa0

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dc8a31749cdb4ea0c68388a5bf3d34a23e020e119025eb390e9d414ff6f8bce4
MD5 7df67b9700eb0f1784e19f778592d676
BLAKE2b-256 5430d03c6d1dad800359e11a078ed98938685c1fb2f048b446b9b9d841a0c442

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 d73ad0921efe659e893b5fe971246d373b3fdb22335a8a5f8b628848daccc156
MD5 735be066a114b4e95184a66013dc5f57
BLAKE2b-256 208cd7f20f2303e4f61cf069f528e187ed4e42588150d9635cb5f796baf372e6

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5a8f0e3bdb64068e4cf3967c3c5ea34b93a4a594ed8f7527a71be946f59bdb65
MD5 02edce347dbeeea1be0bb5063c8274af
BLAKE2b-256 3c42106143f44c03303e50280184c33681267ec6f7e36956c72b756c4a1d116f

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a0334450637d9a640b9b160ceb9020928e1bb747ee0733f3e71dbb97cbf480e1
MD5 c781792e3c984c9a70ce43f72375a9d4
BLAKE2b-256 256b84e58f8aed36bc8c1cfe3bc7a64aa8f5e51f12862c1750ab3d7d9353f9e3

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 a36314ab7279722243e8d79823ceb5ace49d5cd2abfbde31914668b12c8c2b4b
MD5 bf8d512ec8ef0bf72da47266593848d1
BLAKE2b-256 2bb5df282629a29de57b714c72cbf963f7a2f9d02bf3fd2d8bfb4c8fba66e090

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b03c2984b883d90578cb071f3b055888aa41f1695eb23257f95cf05cdf56974b
MD5 c36c4601d38ec059f874f2dff7f95904
BLAKE2b-256 e4b0a1c578561ba5e49780a5b87a5e77428270f6247d4959803df0cd8ef2a8ed

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3e507c5537b8a315d0ffe648039b59ad3e86f6ff773c371fb8ab2e01424a9cd7
MD5 949850b99848750429e9aad6f069388d
BLAKE2b-256 13b4e4f6b042125258612935972d18cb047e380dde0fa9bfada935b92fe25e8d

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 025fe6965a128607fdae5cf24dbf57e2496ebfa0d0b09650382226d3fa15c623
MD5 b99bafe4be61242691580d7668e5cca8
BLAKE2b-256 a44f840316e2b8ec49abf8505aba75cd88ec6f6d6eaa3ca78145547e6148bed9

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 493a63ec1b2eb65258314c25e5a56a967b649811f883f42b3fba9cf5f4099981
MD5 91e899b687654e5ee7bb8835ef12632e
BLAKE2b-256 68b9356a339fb6caefe910ff2076b6e905df7c93e0e17ede04bd1b01bdb5d903

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ecd41bcb214fd507bf06cd084696d901c417904528967c58c757c20bcd832dc3
MD5 14ecfc509c2cf7085ecce090ad936dd4
BLAKE2b-256 984b046aa435a02576a1c45a1327b32cb0e74cb292f50b2aa39db6d8e36e9ee5

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a459d9621437c203495b7894b375f03a7237d42b14f782720a9829630b3356c4
MD5 0a2bd0edc5c023720130c8b5bd4e2b0e
BLAKE2b-256 60d19bb3ae45b1ed20c686d6caf0c19f19a00510f127b6e90bedd492e7a170ec

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 47eda485b0532724f68c636b4ea2b70e6c54de7786a3e4aacff4af5c16a37224
MD5 0370020edd45412da40da123174af03e
BLAKE2b-256 3819dea8f3c6a99897e466ab351ab4ff8025dff5b47509da04a92ff8836e04d5

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 ecbb7059ac3a2530bde5120a55db1fac3cbc3a221d5ec7a0d883393b1646b121
MD5 ab96cfd72875bc62f215bad78e7639d5
BLAKE2b-256 0e87f608e932874a14a9ade55c0217f963e2fcfe03151bd94ffeef8676198aed

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f20825043cc050ae4512042c5539d9f8ff434bbce4d70143a9d2eacb9f97e580
MD5 dcf1300350ada26cf1139fb0f582ceb4
BLAKE2b-256 1f546a43ab95d96079873f4f224169a0a2ac38609ca7f0093a20ebc90f9f85eb

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2fbbdd19fa7b7ecc2618401b57a55f05dd96114574667c50cb373baefd7798a7
MD5 130d2031ecf6af4124c8a68f70ab2e67
BLAKE2b-256 477458930f6afa68988251cf46fbdee3407b61a587320a82899084cf8b079684

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a4e519ff981def205e1e2c9b3ec5b576722605990a43a5daa017c7fdb6d1513f
MD5 9d43f71bfd41a32ce5a0695fef5307af
BLAKE2b-256 530d325aeba5f6a7d1170ab9a99f7d7927faf193aba1e55dbd66b81c3f3c289e

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 3dc9f86a31ce45bca28ce125ebe0b552ae147ee37eb86341f6082cffa624f2de
MD5 74ecf0f6b6d075ad7eafa50f25988bfe
BLAKE2b-256 537df52dede518b006848d2ef5005d171330dc1d5d338b76cf316c5764ff2a57

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f46c965b8f9c61e77bcc5460d12030b598fb38b372e8844f9bebd9f78f6d4002
MD5 f8bd530d16240f9608d9f33108fb97d8
BLAKE2b-256 fb1c0e70dcfd3dd6c1bc40a0a2b63ffa8fa3ccf52f8af313bb52512a2ffa6114

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1e5c9dfc55c6ec3e4e50a53280364eb03d2764af00094a90e67058a70816d5ae
MD5 772cd99d399182df8c1d418d95cb7dd7
BLAKE2b-256 c4a6495960371299dbb6e088cef5d2c5eb191fd4c546ef3342dccd5eefef01c3

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 60c793750704964c07c3bb9f30a96661da8b352c81b13e1115bc544549794a03
MD5 4fd617fb4368f3c1728054360c99d4d0
BLAKE2b-256 1f79aa0ca2abafadcd528e40706f132f4b20a0c93c1c53694338c6235a0b3a44

See more details on using hashes here.

File details

Details for the file rsplotlib-0.2.9-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rsplotlib-0.2.9-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 c39b19dec05c0b3e25a57a818d3514e3d72622597a2c92a342725132b3264bd7
MD5 8e4b0b862089061b565463a6839ad7e6
BLAKE2b-256 5fde51a6bad7039c3f3127930e849ffa61975a2e3d1c0333d570f0c7f981da76

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page