跳转至

数据转换 Presets

数据转换 Presets 对数据进行排序、堆叠、归一化、分组、抖动等预处理操作。

with_sort_by

应用排序数据转换,按指定字段对数据进行排序。

函数签名:

def with_sort_by(chart, field, order="ascending")

参数: - chart (Chart): 图表实例 - field (str): 排序字段名 - order (str, 可选): 排序方向,"ascending"(升序)或 "descending"(降序),默认 "ascending"

返回: 应用排序后的图表实例

示例:

from pyantv import Interval
from pyantv.presets import with_sort_by

chart = Interval.from_data(data=data, x_field_name="category", y_field_name="value")

# 按 y 字段升序排序
with_sort_by(chart, field="y", order="ascending")

# 按 y 字段降序排序
with_sort_by(chart, field="y", order="descending")

chart.render("sorted.html")


with_stack

应用堆叠数据转换,适用于堆叠柱状图、堆叠面积图等。

函数签名:

def with_stack(chart)

参数: - chart (Chart): 图表实例

返回: 应用堆叠后的图表实例

示例:

from pyantv import Interval
from pyantv.presets import with_stack

chart = Interval.from_data(data=data, x_field_name="category", y_field_name="value", color_field_name="type")

with_stack(chart)

chart.render("stacked.html")


with_normalize

应用归一化数据转换,将堆叠数据转换为百分比形式,适用于百分比堆叠图。

函数签名:

def with_normalize(chart)

参数: - chart (Chart): 图表实例

返回: 应用归一化后的图表实例

示例:

from pyantv import Interval
from pyantv.presets import with_normalize

chart = Interval.from_data(data=data, x_field_name="category", y_field_name="value", color_field_name="type")

with_normalize(chart)

chart.render("normalized.html")


with_group

应用分组数据转换,将数据按指定通道分组并排显示。

函数签名:

def with_group(chart, channels=None)

参数: - chart (Chart): 图表实例 - channels (list, 可选): 分组通道列表,默认 ["x"]

返回: 应用分组后的图表实例

示例:

from pyantv import Interval
from pyantv.presets import with_group

chart = Interval.from_data(data=data, x_field_name="category", y_field_name="value", color_field_name="type")

# 默认按 x 通道分组
with_group(chart)

# 自定义分组通道
with_group(chart, channels=["x"])

chart.render("grouped.html")


with_jitter

应用抖动数据转换,为数据点添加随机偏移,避免数据点重叠。

函数签名:

def with_jitter(chart)

参数: - chart (Chart): 图表实例

返回: 应用抖动后的图表实例

示例:

from pyantv import Point
from pyantv.presets import with_jitter

chart = Point.from_data(data=data, x_field_name="category", y_field_name="value")

with_jitter(chart)

chart.render("jittered.html")

数据转换对比

Preset 转换类型 适用图表 典型场景
with_sort_by 排序 Interval, Line, Area 按值排序展示
with_stack 堆叠 Interval, Area 多系列堆叠对比
with_normalize 归一化 Interval, Area 百分比堆叠对比
with_group 分组 Interval, Point 多系列并排对比
with_jitter 抖动 Point 避免数据点重叠

转换组合

数据转换可以组合使用:

from pyantv import Interval
from pyantv.presets import with_stack, with_normalize

# 创建百分比堆叠图
chart = Interval.from_data(data=data, x_field_name="category", y_field_name="value", color_field_name="type")
with_stack(chart)
with_normalize(chart)
chart.render("percent_stacked.html")