score:5
edit: here is a version with the fill working http://jsfiddle.net/leighking2/slgefm04/6/
so one way to do it would be to extend the line graph. the only prob is you have to override the entire initialise method just to allow all the points to be stored correctly. here is a fiddle showing a custom line graph that does what you describe http://jsfiddle.net/leighking2/slgefm04/
the important bits that have been altered from the original line graph i have placed large comment blocks over so here are the highlights, in the example o have used null to represent gaps but this could just be swapped for -1
in the initialize method the data is processed and turned in to the points, this is where the change needs to happen to allow the missing data to still be included
helpers.each(dataset.data, function(datapoint, index) {
/**
*
* check for datapoints that are null
*/
if (helpers.isnumber(datapoint) || datapoint === null) {
//add a new point for each piece of data, passing any required data to draw.
datasetobject.points.push(new this.pointclass({
/**
* add ignore field so we can skip them later
*
*/
ignore: datapoint === null,
value: datapoint,
label: data.labels[index],
datasetlabel: dataset.label,
strokecolor: dataset.pointstrokecolor,
fillcolor: dataset.pointcolor,
highlightfill: dataset.pointhighlightfill || dataset.pointcolor,
highlightstroke: dataset.pointhighlightstroke || dataset.pointstrokecolor
}));
}
}, this);
then in the draw method whenever we are at a data point we want to ignore or just past one we move the pen rather than drawing
helpers.each(dataset.points, function(point, index) {
/**
* no longer draw if the last point was ignore (as we don;t have anything to draw from)
* or if this point is ignore
* or if it's the first
*/
if (index > 0 && !dataset.points[index - 1].ignore && !point.ignore) {
if (this.options.beziercurve) {
ctx.beziercurveto(
dataset.points[index - 1].controlpoints.outer.x,
dataset.points[index - 1].controlpoints.outer.y,
point.controlpoints.inner.x,
point.controlpoints.inner.y,
point.x,
point.y
);
} else {
ctx.lineto(point.x, point.y);
}
} else if (index === 0 || dataset.points[index - 1].ignore) {
ctx.moveto(point.x, point.y);
}
}, this);
only issue with this was the fill looked proper funky so i commented it out and it's just a line graph now.
score:6
this can now be achieved by setting the spangaps
property to true in the dataset array.
Source: stackoverflow.com
Related Query
- Chart.js gap between points
- Chart,js Pie Chart can the gap between a pie chart and the legend be adjusted
- How to set the gap between data items in a chartjs chart
- How to adjust spaces between points in chart js?
- gap between half doughnut chart and container div
- How to reduce the gap between bars on bar chart
- Chart.js - Increase spacing between legend and chart
- Connecting points between missing data in chart.js
- Chart JS Fill Between two lines
- Chart.js drag points on linear chart
- Chart JS show multiple data points for the same label
- Chartjs Line Color Between Two Points
- Center point labels between ticks (Polar Area Chart JS)
- ChartJs line chart - display permanent icon above some data points with text on hover
- Find intersection between the chart lines in chartjs
- Increase padding between legend and chart with react-chartjs-2
- Chart.js :set yAxis point to 0 when there is gap between two dates
- ChartJs: Different Fill Colour Between Data Points
- increase the gap between y-axis and first x-axis value chart.js
- chart js data-point between bar charts
- ChartJS - handling of overlapping points in line chart
- Chart.js - Line charts: draw points between grid lines
- to increase space between x axis and first horizontal bar in chart js
- High and low points on chart getting cut off
- Is it possible to make points in a line chart of Chart JS 3.7.0 look like a donut?
- How can I achieve displaying data points on chart but Dotted? Chart.js V3.7.0
- add info for points in line chart (js)
- Chart.js drawing line between two points
- How to get chart from data points (arrays) with inconsistent time intervals and chart.js?
- Chart JS pass in custom data for points
More Query from same tag
- react chart js skip zero value month
- chartjs-plugin-annotation won't draw anything
- How to adjust axis width independently of gridLines lineWidth in chart.js graphs?
- Trouble using utcoffset with Chart.js
- Gradient colour in backgroundColor JS
- Moving point to clicked point in ChartJS (radarchart)
- Place tooltip on the outer side of the doughnut chart
- Create data in data with Chartjs
- ASP.NET Core Razor Pages - Get List Data to Display on Chart.js Graph
- Array is not being updated in useState hook?
- Chart.js Pie Chart: How to set background image for segment
- Chart.js changing the color of the max value bar
- Bar Chart cannot read data and label in laravel
- React: How to get loading spinner to show whilst API data loads into my chart.js chart
- How to get the actual chart width and height in chart.js
- How to create two pie charts using Chart.js API?
- Chartjs pie chart not showing from dynamic data
- How to import a doughnut Chart using Chart JS for Blazor?
- Remove Angularjs-Chart border and reduce chart arc thickness
- Chart.js removing first dataset and label
- Unable to install chartjs-node with npm, due to file cairo.h missing/Failed at the canvas@1.6.13 install script
- How to pass a fetched object from App.js to a child component asynchronously in ReactJS v16+
- Chart.JS change Text Color
- How to integrate charts with js and jQuery?
- Chart.js Partly filled in area/line graph
- chart.js animation loading
- What can I do to ensure that my charts diagram reload every time I choose it from my dropdown?
- chartjs : uncaught exception: 0 and X are too far apart with stepSize of Y
- Is there a way to style multiple borders on Doughnut chart with Chart.js library?
- Dynamically updating time data in chart.js freezes the chart