跳到正文
misoto22 design

图表

LineChart

连续轴上互相比较的多条序列。

什么时候用它

读者在把序列互相比较。当某条线下方的面积才是重点时,就把它填起来——那是 AreaChart。

示例

default

Visitors per month
Visitors per month
monthDesktopMobile
Jan18680
Feb305200
Mar237120
Apr273190
May209130
Jun314240

stroke dot curve

Visitors per month
Visitors per month
Desktop
186
305
237
273
209
314

legend variants

Visitors per month
Visitors per month
DesktopMobile
18680
305200
237120
273190

backgrounds

Visitors per month — dots plate
Visitors per month — dots plate
Desktop
186
305
237
273
209
314

emphasis

Glowing — one series is the point
Glowing — one series is the point
DesktopMobile
18680
305200
237120
273190
209130
314240
Buffer — the last leg is a projection
Buffer — the last leg is a projection
DesktopMobile
18680
305200
237120
273190
209130
314240

brush

Visitors per day
Visitors per day
dayDesktopMobile
D1160140
D2177139
D3194136
D4208131
D5219125
D6226117
D7230108
D822998
D922489
D1021479
D1120269
D1218761
D1317053
D1415247
D1513543
D1612041
D1710740
D189742
D199245
D209050
D219357
D2210065
D2311175
D2412484
D2514094
D26158104
D27175113
D28192122
D29206129
D30218134
D31226138
D32230140
D33229140
D34225138
D35216133
D36204128
D37189120
D38172112
D39155103
D4013893

loading

Visitors per month
Loading

axis labels and format

p95 latency
p95 latency
p95 latency
1.42
1.61
2.04
1.88
1.34
Ad spend
Ad spend
Ad spend
4,210
5,180
4,890
6,320
7,010

sonify

Latency per week, milliseconds
Latency per week, milliseconds
weekp95 latencyp50 latency
W114261
W216164
W320466
W418863
W513458
W612957

toolbar

Visitors per day

Arrow keys pan by one point, Page Up and Page Down by a screenful, Home and End jump to the ends. Plus and minus zoom, zero resets. Ctrl and the wheel zoom around the pointer, and dragging across the plot zooms to that span.

Showing D1 to D90, 90 of 90 points

Visitors per day
dayDesktopMobile
D1160140
D2172140
D3183139
D4194137
D5203135
D6212132
D7219129
D8224126
D9228122
D10230117
D11230112
D12228107
D13224102
D1421896
D1521191
D1620285
D1719280
D1818174
D1917069
D2015864
D2114760
D2213555
D2312552
D2411548
D2510746
D2610043
D279542
D289241
D299040
D309140
D319341
D329742
D3310344
D3411147
D3512050
D3613053
D3714057
D3815262
D3916466
D4017571
D4118677
D4219782
D4320688
D4421493
D4522199
D46226104
D47229109
D48230114
D49229119
D50227123
D51222127
D52216131
D53208134
D54199136
D55189138
D56178139
D57166140
D58155140
D59143139
D60132138
D61122136
D62113134
D63105131
D6498128
D6594124
D6691120
D6790115
D6891110
D6994105
D709999
D7110594
D7211388
D7312283
D7413377
D7514472
D7615567
D7716762
D7817858
D7918954
D8020050
D8120947
D8221644
D8322242
D8422741
D8522940
D8623040
D8722940
D8822541
D8922043
D9021445

说明

连续轴上互相比较的多条序列——用来回答“这几条各自在往哪走”。

<AreaChart> 的区别在于它要求读者做什么:区域图说“读这下面的量”,折线图说“把这几条互相比一比”。把四条互相重叠的序列都填上,第二个问题就没法回答了——这也是折线图不提供填充样式的原因。

属性

LineChart props
属性类型默认值说明
children必填ReactNode组合进来的各个部分——坐标轴、网格、tooltip、图例,以及标记本身。
config必填TConfig & ValidateKeys<TData, TConfig>
data必填TData[]图表要画的数据行。每一条对应一个点、一根柱或一个分类。
title必填string这张图在讲什么,用一句读者能据此行动的话。必填,而且即使不显示出来也会播报给读屏软件。
animationTypeChartRevealType'forward'
chartPropsComponentProps<typeof RechartsLineChart>通往原始 Recharts 图表元素的逃生口。
classNamestring最后合并到 figure 上,所以调用处可以决定它的尺寸和间距。
curveTypeChartCurveType'linear'两个点之间的线怎么插值。除非某个标记自己另有说明,否则都继承它。
defaultSelectedDataKeystring | nullnull首次渲染时点亮的序列。选中会让其他序列变暗。
descriptionReactNode标题下面的一行——单位、时间窗口、需要提醒的地方。
emptyChartEmptyProps | false图表没东西可画时显示什么。 只要 `data` 是空的、而且图表并不处于加载中,它就会顶替绘图区渲染出来——这是任何一个真实仪表盘一周之内就会遇到的状态,也是「空白的一对坐标轴」和「加载失败」根本分不出来的那一个。传 `false` 保留坐标轴,用于那种「空本身就是结论」的图。
hideDataTablebooleanfalse去掉隐藏的表格视图。只有当页面自己已经把数据印出来时,这才是对的。
isLoadingbooleanfalse把标记换成一张动画骨架,并保留已测量的高度,这样数据到位时页面不会跳。
loadingPointsnumber骨架画多少个点。
onSelectionChange(selectedDataKey: string | null) => void选中项变化时触发;被清除时传 null。
showTitleboolean把标题印在图上方,而不是藏起来。
xDataKeykeyof TData & string分类轴对应的数据字段。brush 和表格视图都需要它。

类型

TSX
export type LineStrokeVariant = AreaStrokeVariant

无障碍

  • title 必填;数据行同样会渲染成一份视觉隐藏的表格。
  • 可点击的线下面会垫一条 15px 的透明线,因为 1.6px 的描边不构成指针目标。
  • buffer 通过测量真实路径长度把最后一段画成虚线,所以在任何曲线类型下,“预测”都明确是另一种性质的事实。