Content-Length: 422320 | pFad | http://github.com/unfode/algorithm-visualizer/commit/59ea9349d66e7ca4deb3c6d49565d02ed4f34b11

AB feat: add ScatterTracer and ScatterRenderer (#298) · unfode/algorithm-visualizer@59ea934 · GitHub
Skip to content

Commit 59ea934

Browse files
authored
feat: add ScatterTracer and ScatterRenderer (algorithm-visualizer#298)
1 parent f84321c commit 59ea934

File tree

5 files changed

+66
-0
lines changed

5 files changed

+66
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
@import "~common/stylesheet/index";
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import React from 'react'
2+
import {Scatter} from 'react-chartjs-2'
3+
import Array2DRenderer from '../Array2DRenderer'
4+
5+
const convertToObjectArray = ([x, y]) => ({ x, y })
6+
const colors = ['white', 'green', 'blue', 'red', 'yellow', 'cyan']
7+
8+
class ScatterRenderer extends Array2DRenderer {
9+
renderData() {
10+
const { data } = this.props.data
11+
12+
const datasets = data.map((series, index) => (
13+
{
14+
backgroundColor: colors[index],
15+
data: series.map(s => convertToObjectArray(s.value)),
16+
label: Math.random(),
17+
radius: (index + 1) * 2,
18+
}))
19+
20+
const chartData = {
21+
datasets,
22+
}
23+
24+
return <Scatter data={chartData} options={{
25+
legend: false,
26+
animation: false,
27+
layout: {
28+
padding: {
29+
left: 20,
30+
right: 20,
31+
top: 20,
32+
bottom: 20,
33+
},
34+
},
35+
scales: {
36+
yAxes: [
37+
{
38+
ticks: {
39+
beginAtZero: false,
40+
},
41+
}],
42+
xAxes: [
43+
{
44+
ticks: {
45+
beginAtZero: false,
46+
},
47+
}],
48+
},
49+
}}/>
50+
}
51+
}
52+
53+
export default ScatterRenderer

src/core/renderers/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ export { default as Array2DRenderer } from './Array2DRenderer';
55
export { default as Array1DRenderer } from './Array1DRenderer';
66
export { default as ChartRenderer } from './ChartRenderer';
77
export { default as GraphRenderer } from './GraphRenderer';
8+
export { default as ScatterRenderer } from './ScatterRenderer';

src/core/tracers/ScatterTracer.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { Array2DTracer } from 'core/tracers';
2+
import { ScatterRenderer } from 'core/renderers';
3+
4+
class ScatterTracer extends Array2DTracer {
5+
getRendererClass() {
6+
return ScatterRenderer;
7+
}
8+
}
9+
10+
export default ScatterTracer;

src/core/tracers/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ export { default as Array2DTracer } from './Array2DTracer';
55
export { default as Array1DTracer } from './Array1DTracer';
66
export { default as ChartTracer } from './ChartTracer';
77
export { default as GraphTracer } from './GraphTracer';
8+
export { default as ScatterTracer} from './ScatterTracer';

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/unfode/algorithm-visualizer/commit/59ea9349d66e7ca4deb3c6d49565d02ed4f34b11

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy