跳到正文
misoto22 design

图表

ScatterChart

两个度量互相对照,每个观测一个点。

什么时候用它

相关性、聚类、离群点——这些问题一旦被塞进柱状图的桶里就答不出来了。这也是这里唯一一张横轴是数值而不是分类的图。

示例

default

Load time against bundle size
Load time against bundle size
kbLoad (ms)
120340
180412
240505
310618
360660
420790
470812

shape and variant

Load time against bundle size
Load time against bundle size
kbLoad (ms)
120340
180412
240505
310618
420790
130520
190610
250704
320861
430990

bubbles

Load time, bundle size and downloads
Load time, bundle size and downloads
kbLoad (ms)Downloads
120340400
1804121,200
240505260
3106182,400
420790900

说明

两个度量互相对照,每个观测一个点——用来回答“这两者之间有没有关系”。

这是整套里唯一一张横轴是数值而不是分类的图,而这正是它的意义所在:散点回答的是相关性、聚类和离群点,这三个问题一旦被塞进柱状图的桶里就全没了。

超过三条序列,形状就分不开它们了,答案是小型多图——一条序列一张图、共用同一套坐标轴——而不是加第四种记号。

属性

ScatterChart props
属性类型默认值说明
children必填ReactNode组合进来的各个部分——坐标轴、网格、tooltip、图例,以及标记本身。
config必填ChartConfig序列 key → 它的标签和上色。声明顺序就是色阶槽位顺序。
title必填string这张图在讲什么,用一句读者能据此行动的话。必填,而且即使不显示出来也会播报给读屏软件。
chartPropsComponentProps<typeof RechartsScatterChart>通往原始 Recharts 图表元素的逃生口。
classNamestring最后合并到 figure 上,所以调用处可以决定它的尺寸和间距。
defaultSelectedDataKeystring | nullnull首次渲染时点亮的序列。选中会让其他序列变暗。
descriptionReactNode标题下面的一行——单位、时间窗口、需要提醒的地方。
onSelectionChange(selectedDataKey: string | null) => void选中项变化时触发;被清除时传 null。
showTitleboolean把标题印在图上方,而不是藏起来。
tableScatterTable | false隐藏表格视图所依据的数据行,以及要打印的字段。散点的数据挂在每个 `<Scatter>` 上、而不是挂在根节点上,所以和这里其他所有图不同,它的表格推断不出来——只能显式声明。

类型

TSX
export type ScatterShape = 'circle' | 'square' | 'triangle' | 'diamond' | 'cross' | 'ring'
export type ScatterVariant = 'solid' | 'outline' | 'gradient'

无障碍

  • title 必填。表格视图是显式声明的、不是推断出来的:散点的数据挂在每条序列上,根节点上并没有一份统一的数据行可读。
  • 在这里承担别处由色相承担的工作的是**形状**。两团重叠的点,用圆形对十字形去分远比用两级灰阶好认——而且形状在叠印时仍然成立,灰阶不行。
  • 实心点自带一圈页面色描边,所以两个落在同一位置的观测仍然数得清。
  • ZAxis 把它的度量映射到点的**面积**、不是半径:半径翻倍会让墨量变成四倍,这是气泡图最常见的说谎方式。