关于 visualizing-change-over-time
为使用 @posthog/quill-charts 构建图表的开发者提供按变化形态选择图表的技能指南,涵盖趋势、斜率图、柱状图和指标卡。还说明了组件与 PostHog 趋势洞察中的斜率图用法。
主要功能
- 01按变化形态选择图表
- 02使用 SlopeChart 比较前后变化
- 03配置斜率图标签与图例
- 04区分组件和洞察展示类型
- 05通过 API 创建斜率图洞察
适用场景
- 01比较多个类别的前后快照
- 02展示连续时间序列趋势
- 03呈现单个指标及其期间变化
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ posthog/ posthog --skill visualizing-change-over-time安装后在 Claude Code 中输入/visualizing-change-over-time确认已加载。
详细介绍
可视化随时间变化
当请求涉及某事物如何变化时,默认的选取是折线/面积趋势图——对于具有许多 x 点的连续序列,这通常是对的。但对于某些随时间变化的形态,其他图表读起来要好得多。本技能提供了可选的菜单,包括斜率图,用于在使用 @posthog/quill-charts 构建可视化时使用。
呈现合适的选项并让用户选择——这些都不是强制性的。
按变化的形态选择
| 变化是… | 选择 | 原因 |
|---|---|---|
| 跨多个时间点的连续序列(趋势) | TimeSeriesLineChart / LineChart(面积填充以强调) | 标准趋势图;每对点之间的斜率都可见。 |
| 仅两个点(前 → 后)跨多个序列/类别 | SlopeChart | 每个实体从左侧“前”到右侧“后”的一条线——每个实体的变化方向和幅度,以及排名翻转,一目了然。 |
| 时间点上的量级比较(而非它们之间的路径) | BarChart / TimeSeriesBarChart | 条形图比较离散值;对子序列进行分组/堆叠。 |
| 单个头条数字及其与上一周期的变化 | MetricCard | 大数字 + 迷你图 + 变化胶囊。 |
如果用户比较的正好是两个快照(本周 vs 上周、对照组 vs 实验组、Q1 vs Q2),尤其是当有许多类别且它们的_相对_变动很重要时,建议将斜率图作为分组条形图或 2 点折线图的更清晰替代方案。
使用 SlopeChart
import { SlopeChart } from '@posthog/quill-charts'
import type { Series } from '@posthog/quill-charts'
import type { SlopeSeriesMeta } from '@posthog/quill-charts'
// One series per entity; `data` is exactly [start, end].
const series: Series<SlopeSeriesMeta>[] = [
{ key: 'us', label: 'US', data: [120, 185] },
{ key: 'eu', label: 'EU', data: [200, 150] },
]
<SlopeChart
series={series}
labels={['Before', 'After']}
theme={theme}
config={{
showSeriesLabels: true, // name beside each end point; steepest line always keeps its label
legend: { show: true }, // each row shows the color, label, and the formatted change
deltaFormatter: (d) => `${d >= 0 ? '+' : ''}${d}`,
}}
/>
关键选项(完整列表见图表 docs/chart-types.md 的 "SlopeChart" 部分):
showStartLabels/showEndLabels— 值标签的图表级默认值; 可按序列用meta.showStartLabel/meta.showEndLabel覆盖。showSeriesLabels— 名称标签;发生冲突时,变化最大的序列 (|end − start|)始终保留其标签。legend: { show, position }— 行带有每个序列的变化(deltaFormatter)。- 值轴默认隐藏——起始/结束标签就是读数。
主题来自 useChartTheme();给包装容器一个真实的高度。有关主题接线和尺寸设置,请参阅 charts AGENTS.md。
范围说明
渲染斜率图有 两种 方式;选择哪一种取决于使用场景:
SlopeChart—@posthog/quill-charts组件。在直接构建 UI 时使用:仪表盘、报告、mcp_analytics前端、自定义可视化。它为 Max 的内联趋势结果卡片上的 Slope 视图切换提供支持 (services/mcp/src/ui-apps/components/TrendsVisualizer.tsx)。ChartDisplayType.SlopeGraph— 一等洞察展示类型(frontend/src/types.ts中的值'SlopeGraph'),由后端SlopeGraphTrendsQueryRunner(products/product_analytics/backend/hogql_queries/trends/slope_graph_trends_query_runner.py)渲染。它 接收一个TrendsQuery,并将日期范围的 第一个和最后一个分桶 保留为 两个斜率点(当最后一个分段是当前仍在累积的周期时,该分段为虚线)。通过trendsFilter.display: "SlopeGraph"设置(仅限 trends)。- 产品洞察编辑器 包含斜率图选择器条目。
- 通过 API /
posthog:insight-createMCP 工具,传入带有trendsFilter.display: "SlopeGraph"的TrendsQuery。要构建清晰的前后对比,请选择 日期范围和interval,使第一个分桶作为基线,最后一个分桶为 "now"(例如从基线月份开始的每月分桶)。
评论
支持 Markdown