Snippet
React chartjs 2
3 réponses de la communauté
import { useState, useEffect, useRef } from "react";
import { Chart as ChartJS, ArcElement, Tooltip, Legend } from "chart.js";
import { Pie } from "react-chartjs-2";
ChartJS.register(ArcElement, Tooltip, Legend);
export const data = {
labels: ["Case on Hold", "Submitted", "In Production", "Shipped"],
datasets: [
{
label: "# of Votes",
data: [12, 19, 3, 5],
backgroundColor: ["#F2CC59", "#BA68C8", "#407BFF", "#E6E5E6"],
borderColor: ["#F2CC59", "#BA68C8", "#407BFF", "#E6E5E6"],
borderWidth: 1,
},
],
};
const pieOptions = {
plugins: {
legend: {
display: false,
labels: {
font: {
size: 12,
},
},
},
},
};
export default function ChartView() {
const [charView, setChatView] = useState<any>([]);
const summaryRef: any = useRef(null);
useEffect(() => {
setChatView(summaryRef?.current?.legend?.legendItems);
}, []);
return (
<div>
<Pie data={data} options={pieOptions} ref={summaryRef} />
// coustom label you need take it else remove code and ref and display: true,
{charView?.map((data: any, i: number) => (
<Box display="flex" sx={{ mt: 2 }} key={i}>
<Box
sx={{
height: 16,
width: 16,
background: `${data?.fillStyle}`,
borderRadius: 5,
mr: 0.5,
}}
/>
<Typography variant="body2"> {data?.text}</Typography>
</Box>
))}
</div>
);
}
import React, { Component } from 'react';
import './App.css';
import axios from 'axios'
import Chart from './components/Chart';
class App extends Component {
constructor(){
super();
this.state = {
chartData:{}
}
}
componentDidMount() {
this.getChartData();
}
getChartData() {
axios.get("http://www.json-generator.com/api/json/get/coXIyroYAy?indent=2").then(res => {
const coin = res.data;
let labels = [];
let data = [];
coin.forEach(element => {
labels.push(element.labels);
data.push(element.data);
});
console.log(coin)
this.setState({
chartData: {
labels:labels,
datasets: [
{
label: "Population",
data: data,
backgroundColor: [
"rgba(255, 99, 132, 0.6)",
"rgba(54, 162, 235, 0.6)",
"rgba(255, 99, 132, 0.6)"
],
}
]
}
});
});
}
render(){
return (
<div className="App">
{Object.keys(this.state.chartData).length &&
<Chart
chartData={this.state.chartData}
location="Massachusetts"
legendPosition="bottom"
/>
}
</div>
);
}
}
export default App;
yarn add chart.js react-chartjs-2
Snippets similaires |
---|