10

我想在组合图表上绘制数据点,由条形图和线形图组成,每个都有自己的数据集。

例如,我希望每个 Bar 从 中获取值data.points,但 Lines 从对象数组中获取值data.content

这两个数据集存在差异,尽管它们都是时间序列。

数据形状示例:

const data = {
    points: [{
        value: 80,
        timestamp: 2010-01-09
    }],
    content: [{
        date_posted: 2010-01-10,
        content_id: 'xewr23r3g29w0'   
    }]
}

我是否能够为每个图表组件单独使用这些数据集,或者我是否必须遍历数据并以某种方式对其进行标准化?

我的实例代码也可供参考ComposedChart

<ComposedChart width={600} height={400} data={data} margin={margin} legendType="circle">
  <CartesianGrid strokeDasharray="3 3" />
  <XAxis dataKey="timestamp" tickFormatter={this.formatDate} height={40} />
  <YAxis />
  <Legend iconType="circle" />
  <Bar dataKey="content_id" barSize={20} fill="#413ea0" />
  <Line name="Selected Period" type="monotone" dataKey="value" stroke={colors.blue} />
</ComposedChart>
4

1 回答 1

1

您应该能够将数据属性分别添加到 Bar & Line:

<Bar data={data.content} ... />
<Line data={data.points} ... />

我在尝试为 Area & Line 组合 2 个数据集时遇到问题,其中 Area 不接受数据属性。我是这样解决的:

<ResponsiveContainer width="100%" height={300}>
  <ComposedChart
    data={myAreaData}
    ...
  >
    <XAxis ... />
    <YAxis ... />
    <Legend layout="vertical" align="right" verticalAlign="middle" />
    <Area
      // does not accept 'data' attribute (!)
      ...
    />
    <Line data={myLineData} ... />
  </ComposedChart>
</ResponsiveContainer>
于 2021-01-10T22:19:36.977 回答