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>