Frappe Charts is a modern and responsive SVG charts plugin that supports line, bar, axis-mixed, pie, percentage, and heatmap chart. There are various types of options and you can use them accordingly as you need.
NPM
and YARN
.datasets
supported.$ npm install frappe-charts
1. Include the Javascript frappe-charts.min.iife.js
at the bottom of the web page.
<script src="path/to/frappe-charts.min.iife.js"></script>
2. Include the CSS frappe-charts.min.css
in the header of the page.
<link rel="stylesheet" href="path/to/frappe-charts.min.css">
3. Add the basic HTML to the page.
<div id="chart"></div>
4. Initialize the plugin and we're ready to go.
const data = {
labels: ["12am-3am", "3am-6pm", "6am-9am", "9am-12am",
"12pm-3pm", "3pm-6pm", "6pm-9pm", "9am-12am"
],
datasets: [
{
name: "Some Data", type: "bar",
values: [25, 40, 30, 35, 8, 52, 17, -4]
},
{
name: "Another Set", type: "line",
values: [25, 50, -10, 15, 18, 32, 27, 14]
}
]
}
const chart = new frappe.Chart("#chart", { // or a DOM element,
title: "My Awesome Chart",
data: data,
type: 'axis-mixed', // or 'bar', 'line', 'scatter', 'pie', 'percentage'
height: 450,
colors: ['#7cd6fd', '#743ee2']
});
Name | Default | Type | Description |
---|---|---|---|
Container |
|
The first parameter required by the Chart constructor is the container element. You can pass in a CSS Selector or a DOM Object. |
|
Options |
|
The second parameter required by the Chart constructor is the options object. The minimum required configuration is to pass data values, which itself requires an array of labels and an array of datasets . |
|
data | Required Properties: labels , datasets Optional Properties: yMarkers , yRegions |
Object | Contains an array of labels and an array of datasets , each a value for the 2-dimensional data points. |
title | '' |
String | Add a title to the Chart. |
type | line Values: line | bar | axis-mixed | pie | percentage | heatmap |
String | Let the chart know what type to render. |
colors | ['light-blue', 'blue', 'violet', 'red', 'orange', 'yellow', 'green', 'light-green', 'purple', 'magenta', 'light-grey', 'dark-grey'] |
Array | Set the colors to be used for each individual unit type, depending on the chart type. |
height | 240 |
Number | Set the height of the chart in pixels. |
axisOptions | {} |
Object | |
xAxisMode and yAxisMode | Default: span Values: span | tick |
String | Display axis points as short ticks or long spanning lines. |
xIsSeries | 0 |
Boolean | The X axis (often the time axis) is usually continuous. That means we can reduce the redundancy of rendering every X label by setting xIsSeries to 1 and allowing only a few periodic ones. |
TooltipOptions | {} |
Object | Customizing options for the format of the label and value displayed on hover tooltips. |
# | {} |
function | |
barOptions | |||
barOptions | {} |
Object | Can be used to set various properties on bar plots. |
spaceRatio | Default:0.5 Min: 0 Max: 1 |
Number | In order to set the bar width, instead of defining it and the space between the bars independently, we simply define the ratio of the space between bars to the bar width. The chart then adjusts the actual size proportional to the chart container. |
stacked | 0 |
Boolean | Renders multiple bar datasets in a stacked configuration, rather than the default adjacent. |
lineOptions | {} |
Object | Can be used to set various properties on line plots, turn them into Area Charts and so on. |
isNavigable | 0 |
Boolean | Makes the chart interactive with arrow keys and highlights the current active data point. |
valuesOverPoints | 0 |
Boolean | To display data values over bars or dots in an axis graph. |
<div id="axis-mixed"></div>
const data = {
labels: ["12am-3am", "3am-6pm", "6am-9am", "9am-12am",
"12pm-3pm", "3pm-6pm", "6pm-9pm", "9am-12am"
],
datasets: [
{
name: "Some Data",
values: [25, 40, 30, 35, 8, 52, 17, -4],
chartType: 'bar'
},
{
name: "Another Set",
values: [25, 50, -10, 15, 18, 32, 27, 14],
chartType: 'line'
}
]
}
const chart = new frappe.Chart("#axis-mixed", {
title: "Mixed Axis Chart",
data: data,
type: 'axis-mixed',
height: 450,
colors: ['#7cd6fd', '#743ee2']
});
<div id="pie-chart"></div>
const data2 = {
labels: ["12am-3am", "3am-6pm", "6am-9am", "9am-12am",
"12pm-3pm", "3pm-6pm", "6pm-9pm", "9am-12am"
],
datasets: [
{
name: "Some Data",
values: [25, 40, 30, 35, 8, 52, 17, -4],
}
]
}
const chart2 = new frappe.Chart("#pie-chart", {
title: "Pie Chart",
data: data2,
type: 'pie',
height: 450,
colors: ['#7cd6fd', '#743ee2']
});
<div id="multiple-axis"></div>
const data3 = {
labels: ["12am-3am", "3am-6pm", "6am-9am", "9am-12am",
"12pm-3pm", "3pm-6pm", "6pm-9pm", "9am-12am"
],
datasets: [
{
name: "Some Data",
values: [25, 40, 30, 35, 8, 52, 17, -4]
},
{
name: "Another Set",
values: [25, 50, -10, 15, 18, 32, 27, 14]
}
]
}
const chart3 = new frappe.Chart("#multiple-axis", {
title: "Multiple Axis Chart",
data: data3,
type: 'axis-mixed',
height: 450,
colors: ['#7cd6fd', '#743ee2']
});
<div id="percentage-chart"></div>
const data2 = {
labels: ["12am-3am", "3am-6pm", "6am-9am", "9am-12am",
"12pm-3pm", "3pm-6pm", "6pm-9pm", "9am-12am"
],
datasets: [
{
name: "Some Data",
values: [25, 40, 30, 35, 8, 52, 17, -4],
}
]
}
const chart4 = new frappe.Chart("#percentage-chart", {
title: "Percentage Chart",
data: data2,
type: 'percentage',
height: 450
});