Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Chart.js Parallel Coordinates Plot

License

NotificationsYou must be signed in to change notification settings

sgratzl/chartjs-chart-pcp

Repository files navigation

NPM PackageGithub Actions

Chart.js module for charting parallel coordinate plots (PCPs). Adding new chart type:pcp.

MTCars

Open in CodePen

MTCars Tooltip

MTCars Tension

Open in CodePen

Related Plugins

Check out also my other chart.js plugins:

Install

npm install --save chart.js chartjs-chart-pcp

Usage

seeExamples

Open in CodePen

PCP

Data Structure

the data items are the regular data items along with their labels. For each attribute there is a dataset. e.g., in the following example there are three items (A, B, C) with three axes / features (f1, f2, f3).

constobjs=[{label:'A',f1:5,f2:3,f4:3},{label:'B',f1:2,f2:1,f4:8},{label:'C',f1:10,f2:6,f4:2},];constattrs=['f1','f2','f3'];constconfig={type:'pcp',data:{labels:objs.map((obj)=>obj.label),datasets:attrs.map((attr)=>({label:attr,data:objs.map((obj)=>obj[attr]),})),},options:{},};

Styling of elements

Two new elements were added:lineSegment as a subclass of line for a line segment between two axes andlinearAxis for representing the vertical axis as a wrapper around a linear scale.

seehttps://github.com/sgratzl/chartjs-chart-pcp/blob/develop/src/elements/lineSegment.ts#L3-L9

seehttps://github.com/sgratzl/chartjs-chart-pcp/blob/develop/src/elements/axis.ts#L13-L21

Scaling

The Parallel Coordinates controllerpcp uses a linear scale. There is also thelogarithmicPcp that uses a logarithmic scale.Using chart.js hybrid charts, one can specify the type per dataset. e.g.,

constconfig={type:'pcp',data:{labels:['1','2','3'],datasets:[{label:'A',data:[1,2,3]},{type:'logarithmicPcp',label:'B',data:[1,2,10000]}})),},options:{},};

ESM and Tree Shaking

The ESM build of the library supports tree shaking thus having no side effects. As a consequence the chart.js library won't be automatically manipulated nor new controllers automatically registered. One has to manually import and register them.

Variant A:

importChartfrom'chart.js';import{ParallelCoordinatesController,LinearAxis,LineSegment,PCPScale}from'chartjs-chart-pcp';Chart.register(ParallelCoordinatesController,PCPScale,LineSegment);Chart.registry.addElements(LinearAxis);...newChart(ctx,{type:ParallelCoordinatesController.id,data:[...],});

Variant B:

import{ParallelCoordinatesChart}from'chartjs-chart-pcp';newParallelCoordinatesChart(ctx,{data:[...],});

Development Environment

npm i -g yarnyarn installyarn sdks vscode

Common commands

yarn compileyarntestyarn lintyarn fixyarn buildyarn docs

Sponsor this project

 

Contributors2

  •  
  •  

[8]ページ先頭

©2009-2025 Movatter.jp