Basic SVG Chart Plugin For jQuery - jChart
| File Size: | 38.9 KB |
|---|---|
| Views Total: | 10886 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
jChart is an easy-to-use jQuery plugin for rendering SVG based, vector shaped pie & donut charts that display each value as a part of a pie or donut.
New: Currently supports gauge and bar charts.
How to use it:
1. Import the latest version of jQuery library and the jChart plugin's script into the document.
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
crossorigin="anonymous">
</script>
<script src="/src/js/jchart.js"></script>
2. Create a container element to hold the chart.
<div id="element"></div>
3. Prepare your data in an array of objects as these:
const mydata = [
{
value: 300
},
{
value: 100,
color: '#77dd4f', // stroke color of the segment
draw: true, // draw the segment on the chart or not
push: true //push the next segment via offset
},
{
value: 100,
color: '#dd5723'
}
]
4. Initialzie the plugin and render a default donut chart inside the container you just created.
const myChart = $("#element").jChart({
data: myData
});
5. Render the data as a pie chart instead.
const myChart = $("#element").jChart({
data: myData,
appearance: {
type: 'donut'
}
});
6. The necessary CSS to style the pie & donut chart.
.jchart--donut--segment, .jchartpie--segment {
transition: stroke-dasharray 1s ease;
}
.jchart {
width: 400px;
height: 400px;
}
.jchart--body {
width: 100%;
height: 100%;
}
7. All default configuration options.
const myChart = $("#element").jChart({
// selectors
elements: {
container: null,
body: null,
group: null,
figure: null,
svg: null,
segments: [],
markers: null
},
// your own data
data: [],
// values necessary for the graphing, like sum of values of all segments
values: {},
placeholder: {
data: {
value: 0, // value of the segment
color: {
normal: '#00a3f2', // stroke/fill color of the segment
active: '#00d8f2',
},
draw: true, // whether to draw the segment on the chart or not; default true
push: true, // whether to push the next segment via offset. Best to set false together when draw is set to false (the empty section will always be at the end that way); default true
order: null, // drawing order
title: 'untitled',
strokeWidth: 3
}
},
// appearance options
appearance: {
type: 'donut', // or 'pie', 'bar'
baseColor: '#ddd',
segmentColor: {
normal: '#00a3f2',
active: '#00d8f2',
},
baseOffset: 0, // offset for starting point of first segment
baseStrokeWidth: 1,
strokeWidth: 3, // default stroke width for all segments
animated: true,
title: {
chartTitle: '',
showValue: true, // tooltips
showPercentage: true,
showSummary: false, // summary - show a value inside the donut chart
summaryTitle: '', // by default it shows the percentage of the greatest segment in the chart
// (if summaryTitle is empty)
summarySegment: null // the segment's id which percentage will be displayed in the summary
},
/* DONUT AND CIRCLE */
radius: 100 / (2 * Math.PI),
innerCutout: 0.75, // how "thin" the segments are from the center point. (0 will render a pie chart (full circle))
centerX: 21,
centerY: 21,
/* DONUT */
subType: 'circle', // render type: circle for circle based approach, path for line and arc approach using path
isGauge: false, // if the donut will be rendered as a full circle or a half-circle
gap: 1, // gap between segments for donut chart (in percentage, 1 = 1%)
/* BAR */
showMarkers: true,
markerColor: '#f45a42',
markerCount: 10,
markerWidth: 0.5, // in percentage of width - 0.5 means 0.5%
rx: 0, // horizontal corner radius
ry: 0 // vertical corner radius
},
// callback function
callbacks: {
onInit() {
},
onRefresh() {
},
onSegmentMouseover() {
},
onSegmentMouseout() {
}
}
});
Changelog:
2019-07-12
- JS update
2019-02-20
- bugfix
- added more configs
2018-11-16
- fix showSummary on donut chart when there are no drawable segments
2018-09-25
- horizontal bar markers offsetX fix (markers in the middle have their offsetX modified by half their width)
2018-08-28
- added markers to bar chart
2018-08-25
- added gaps to pie charts
2018-08-22
- Added bar chart type.
2018-08-22
- Added Gauge chart + fixed gap issues on donut charts
2018-08-21
- Bugfix
2018-08-17
- update - ignore empty segments when drawing gaps between them
2018-08-16
- update - fixed hover node bug, added comments to Refresh and Update functions
2018-08-14
- added more options and callbacks
2018-08-09
- Bugfix
2018-07-25
- JS & CSS updated
This awesome jQuery plugin is developed by Falkan3. For more Advanced Usages, please check the demo page or visit the official website.











