跳到正文
misoto22 design

图表

ComposedChart

同一根轴上的柱与线——体量,以及它变化的速度。

什么时候用它

两个共享同一刻度的度量。不共享刻度的两个度量应该拆成两张图、或统一到同一基准:这里没有第二根 Y 轴,这是刻意的。

示例

default

Revenue and profit
Revenue and profit
monthRevenueProfit
Jan4,2001,800
Feb5,8002,400
Mar4,1001,600
Apr6,2002,800
May5,4002,200
Jun7,8003,400

variants

Revenue and profit
Revenue and profit
RevenueProfit
4,2001,800
5,8002,400
4,1001,600
6,2002,800
5,4002,200
7,8003,400

hover highlight

Revenue and profit
Revenue and profit
RevenueProfit
4,2001,800
5,8002,400
4,1001,600
6,2002,800
5,4002,200
7,8003,400

brush and loading

Revenue and profit
Revenue and profit
dayRevenueProfit
D13,2002,700
D24,3782,644
D35,4262,480
D46,2292,217
D56,6991,873
D66,7831,468
D76,4731,027
D85,8031,221
D94,8461,649
D103,7082,031
D113,8862,342
D125,0052,564
D135,9242,682
D146,5442,689
D156,7962,586
D166,6522,377
D176,1282,077
D185,2821,703
D194,2061,279
D203,380968
D214,5471,411
D225,5651,822
D236,3232,176
D246,7372,450
D256,7622,628
D266,3942,699
D275,6752,658
D284,6842,507
D293,5292,257
D304,0621,922
Loading
Loading

说明

同一根轴上的柱与线——用来回答“体量,以及它变化的速度”。

永远只有一根轴。刻度不同的两个度量应该拆成两张图,或者统一到同一基准;第二根 Y 轴让作者自己决定两条线在哪里相交,这是一张图能做的最具误导性的事。

属性

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

无障碍

  • title 必填;数据行同样会渲染成一份视觉隐藏的表格。
  • 只有一根值轴。双轴图让作者自己决定两条线在哪里相交,这是一张图能做的最具误导性的事。
  • enableHoverHighlight 会把悬停列之外的柱子调暗,驱动它的是图表自己的 tooltip 索引。