Recharts ComposedChart с несколькими наборами данных?

Я хочу нанести точки данных на составную диаграмму, состоящую из столбцов и линий, каждая из которых имеет свои собственные наборы данных соответственно.

Например, я хочу, чтобы каждый бар получал значение от data.points, но линии, чтобы получить их значение из массива объектов, 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>

1 ответ

Вы должны иметь возможность добавить атрибут данных в Bar & Line отдельно:

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

У меня возникла проблема при попытке объединить 2 набора данных для области и линии, где область не принимает атрибут данных. Я решил это так:

      <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>
Другие вопросы по тегам