如何使用反应图在同一图表上配置多个条形图

编程入门 行业动态 更新时间:2024-10-25 16:22:27
本文介绍了如何使用反应图在同一图表上配置多个条形图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个反应,可以显示.为此,我正在使用react-charts库.

I have a react wherein I am able to display the. For this i am using react-charts library.

要填充图表数据,我正在进行API调用,然后更新状态.我想为YAxis显示多个值.

To populate chart data I am making a API call and thereafter updating the state. I want to display multiple values for YAxis.

我的示例API响应是:

My sample API response is:

{ "result": 1, "data": [ { "data1": "1272.00", "data2": "1183.00", "price": "131.00" }, { "data1": "1328.00", "data2": "1468.00", "price": "132.00" }, { "data1": "1829.00", "data2": "1445.00", "price": "133.00" }, ] }

我想要YAxis的data1和data2值以及XAxis的价格.

I want data1 and data2 values forYAxis and price for XAxis.

反应代码:

import React, { Component } from "react"; import Sidebar from "./Sidebar"; import { Chart } from "react-charts"; import axios from "axios"; const qs = require("qs"); class Home extends Component { state = { datelist: [], chart_data: [] }; componentDidMount() { this.getDatesList(); axios .post( `127.0.0.1:8000/pricedata/`, qs.stringify({ date: "2019-01-11" }) ) .then(res => { if (res.data.result === 1) { this.setState({ chart_data: [ { label: "Strike", data: res.data.data.map(Object.values) } ] }); } else { this.setState({ chart_data: [] }); } }); } getDatesList() { axios.get("127.0.0.1:8000/dateslist/").then(res => { if (res.data.result === 1) { this.setState({ datelist: res.data.data }); } else { this.setState({ datelist: [] }); } }); } handleChange = event => { var dateval = event.target.value; axios .post(`127.0.0.1:8000/pricedata/`, qs.stringify({ date: dateval })) .then(res => { if (res.data.result === 1) { this.setState({ chart_data: [ { label: "Strike", data: res.data.data.map(Object.values) } ] }); } else { this.setState({ chart_data: [] }); } }); }; render() { return ( <div className="container container_padding"> <div className="row"> <Sidebar /> <div className="col-md-9 col-sm-9 col-xs-12"> <select className="form-control" style={{ width: "120px", marginBottom: "10px" }} onChange={this.handleChange} > {this.state.datelist.map((date, i) => ( <option value={date} key={i}> {date} </option> ))} </select> <div style={{ width: "400px", height: "300px" }} > <Chart data={this.state.chart_data} series={{ type: "bar" }} axes={[ { primary: true, type: "ordinal", position: "bottom" }, { type: "linear", position: "left", stacked: true } ]} primaryCursor tooltip /> </div> </div> </div> </div> ); } } export default Home;

我该如何实现?

谢谢.

推荐答案

修改以下几行:

handleChange = event => { var dateval = event.target.value; axios .post(`127.0.0.1:8000/pricedata/`, qs.stringify({ date: dateval })) .then(res => { if (res.data.result === 1) { this.setState({ chart_data: [ { label: "bar1", data: res.data.data.map((d) => ({ x: d.price, y: d.data1 }) }, { label: "bar2", data: res.data.data.map((d) => ({ x: d.price, y: d.data2 }) } ] }); } else { this.setState({ chart_data: [] }); } }); };

和内部渲染:

<Chart data={this.state.chart_data} series={{ type: 'bar' }} axes={[ { primary: true, position: 'bottom', type: 'ordinal' }, { position: 'left', type: 'linear', min: 0 }, ]} primaryCursor secondaryCursor tooltip />

更多推荐

如何使用反应图在同一图表上配置多个条形图

本文发布于:2023-06-07 22:04:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/568589.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多个   图表   如何使用   在同一   条形图

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!