recharts - 多系列在 Recharts 的条形图中不起作用
问题描述
我需要使用以下格式之一创建条形图。数据1 或数据2
const data1 = [ { day: 'ABC', data :[ {job_name: "Mon", value: 4}, {job_name: "Tue", value: 5}, {job_name: "Thu", value: 18}, {job_name: "Fri", value: 5} ] }, { day: 'DEF', data :[ {job_name: "Mon", value: 12}, {job_name: "Tue", value: 15}, {job_name: "Wed", value: 18}, {job_name: "Fri", value: 8} ] }, { day: 'XYZ', data :[ {job_name: "Mon", value: 12}, {job_name: "Tue", value: 15}, {job_name: "Wed", value: 18}, {job_name: "Thu", value: 8} ] } ];
const data2 = [ { day: 'Mon', data :[ {job_name: "ABC", value: 4}, {job_name: "DEF", value: 5}, {job_name: "XYZ", value: 8} ] }, { day: 'Tue', data :[ {job_name: "ABC", value: 12}, {job_name: "DEF", value: 15}, {job_name: "XYZ", value: 18} ] }, { day: 'Wed', data :[ {job_name: "DEF", value: 15}, {job_name: "XYZ", value: 18} ] }, { day: 'Thu', data :[ {job_name: "ABC", value: 12}, {job_name: "XYZ", value: 18} ] }, { day: 'Fri', data :[ {job_name: "ABC", value: 12}, {job_name: "DEF", value: 15} ] } ];
解决方案
简短的回答,你不能。您的示例中的数据形状不适合 Rechart。
请查阅 Rechart - BarChart -> data的文档并相应地重塑您的数据。
以下是同一页面所需数据格式的示例:
const data = [
{
"name": "Page A",
"uv": 4000,
"pv": 2400,
"amt": 2400
},
{
"name": "Page B",
"uv": 3000,
"pv": 1398,
"amt": 2210
}
name
x 轴数据标签在哪里uv
,pv
和amt
是数据系列的值。
所以更多的例子:
const data = [
{
"name": "2019-11-01",
"morning_temp": 8,
"midday_temp": 14,
"evening_temp": 10
},
{
"name": "2019-11-02",
"morning_temp": 5,
"midday_temp": 18,
"evening_temp": 7
},
...
虽然根据我自己的经验,改变你的形状可能具有挑战性,并且可能最终会产生一个高度复杂的函数。如果您无法更改数据形状,您可以查看react-vis -> sample,因为 react-vis 的数据形状看起来更类似于您的示例。
无论哪种情况,数据都必须具有正确的形状。
推荐阅读
- angular - 配置角度捆绑
- angularjs - 在 ng-repeat 指令中使用三元运算符
- java - 以编程方式解析加密的 PKCS#8 编码的 pem 文件
- javascript - 如何更改此处的值?
- javascript - react-ga - React 上最简单的 Google Analytics 设置 - 无响应
- node.js - 我不认为有两个 node.js 进程正在运行。我能杀了他们吗?
- google-sheets - 如何使该公式适用于某个范围
- node.js - 如何使用 Node.js 从“RichTextEditor”上传图像?
- arrays - 在 Mongo 集合中更新数组中的一条记录
- css - 如何根据我在 React Native 中的屏幕大小更改 svg 大小?