Spaces:
Sleeping
Sleeping
File size: 1,665 Bytes
4c41b3d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | import React from "react";
import {
Chart as ChartJS,
CategoryScale,
LinearScale,
PointElement,
LineElement,
Title,
Tooltip,
Legend,
Filler
} from 'chart.js';
import { Line } from 'react-chartjs-2';
ChartJS.register(
CategoryScale,
LinearScale,
PointElement,
LineElement,
Title,
Tooltip,
Legend,
Filler
);
interface IterationChartProps {
data: { version: number; score: number }[];
}
export function IterationChart({ data }: IterationChartProps) {
const chartData = {
labels: data.map(d => `v${d.version}`),
datasets: [
{
label: 'Score Progress',
data: data.map(d => d.score),
borderColor: '#00d9ff',
backgroundColor: 'rgba(0, 217, 255, 0.1)',
fill: true,
tension: 0.4,
pointBackgroundColor: '#00ff41',
pointBorderColor: '#fff',
pointHoverRadius: 6,
},
],
};
const options = {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
display: false,
},
tooltip: {
backgroundColor: '#1a1a1a',
titleColor: '#00d9ff',
bodyColor: '#fff',
borderColor: '#00d9ff',
borderWidth: 1,
},
},
scales: {
y: {
min: 0,
max: 100,
grid: {
color: 'rgba(255, 255, 255, 0.1)',
},
ticks: {
color: '#888',
},
},
x: {
grid: {
display: false,
},
ticks: {
color: '#888',
},
},
},
};
return (
<div className="h-64 w-full">
<Line data={chartData} options={options} />
</div>
);
}
|