New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Boost: connectNulls is not working #7395

Closed
KacperMadej opened this Issue Nov 13, 2017 · 9 comments

Comments

Projects
None yet
4 participants
@KacperMadej
Contributor

KacperMadej commented Nov 13, 2017

Behaviour

When setting connectNulls to false the null gaps are connected.

Live demo with steps to reproduce

http://jsfiddle.net/vd1y2cjx/

compare with the no-boost demo:
http://jsfiddle.net/vd1y2cjx/1/

@KacperMadej KacperMadej added the Bug label Nov 13, 2017

@TorsteinHonsi TorsteinHonsi added Enhancement and removed Bug labels Nov 15, 2017

@TorsteinHonsi

This comment has been minimized.

Show comment
Hide comment
@TorsteinHonsi

TorsteinHonsi Nov 15, 2017

Collaborator

As we mention in the docs, not all features of the SVG rendering engine are available in Boost mode.

I added the Enhancement label to this issue, as we need to consider whether adding connectNulls support in Boost is feasible.

Collaborator

TorsteinHonsi commented Nov 15, 2017

As we mention in the docs, not all features of the SVG rendering engine are available in Boost mode.

I added the Enhancement label to this issue, as we need to consider whether adding connectNulls support in Boost is feasible.

@NeuwenWolf

This comment has been minimized.

Show comment
Hide comment
@NeuwenWolf

NeuwenWolf Jan 8, 2018

I would like to add that this is not documented in the docs, nor is it documented in the "Notes for boost" in the module itself.

This made it quite frustrating when it occurred for me as I assumed it was something I was doing wrong.

It might save someone else many hours of fiddling with the code if it were documented directly in the boost module with the other limitations.

This behaviour may make highcharts entirely unusable for our use-case as we often deal with large, gappy datasets:
image
Our customers would rightly not know how to interpret such a chart.

I attempted a work-around of setting all nulls to -1, and setting my yAxis ymin to 0, but in such a case, the negative values are plotted as 0 for some reason that I assume is just another expression of the connectNulls issue:
image
Edit: This has been submitted as a separate issue #7631

If there are any other workarounds for presenting such charts in boost, I'd love your feedback as this is the final major hurdle in our highcharts journey.

Edit: Another example of the issue this causes:
image
This example is visually dramatic, but the real issue is with short gaps when it's not obvious that there is missing data but it should be.

NeuwenWolf commented Jan 8, 2018

I would like to add that this is not documented in the docs, nor is it documented in the "Notes for boost" in the module itself.

This made it quite frustrating when it occurred for me as I assumed it was something I was doing wrong.

It might save someone else many hours of fiddling with the code if it were documented directly in the boost module with the other limitations.

This behaviour may make highcharts entirely unusable for our use-case as we often deal with large, gappy datasets:
image
Our customers would rightly not know how to interpret such a chart.

I attempted a work-around of setting all nulls to -1, and setting my yAxis ymin to 0, but in such a case, the negative values are plotted as 0 for some reason that I assume is just another expression of the connectNulls issue:
image
Edit: This has been submitted as a separate issue #7631

If there are any other workarounds for presenting such charts in boost, I'd love your feedback as this is the final major hurdle in our highcharts journey.

Edit: Another example of the issue this causes:
image
This example is visually dramatic, but the real issue is with short gaps when it's not obvious that there is missing data but it should be.

@TorsteinHonsi

This comment has been minimized.

Show comment
Hide comment
@TorsteinHonsi

TorsteinHonsi Jan 9, 2018

Collaborator

@cvasseng Can we implement connectNulls in the Boost module?

Collaborator

TorsteinHonsi commented Jan 9, 2018

@cvasseng Can we implement connectNulls in the Boost module?

@cvasseng

This comment has been minimized.

Show comment
Hide comment
@cvasseng

cvasseng Jan 10, 2018

Contributor

@TorsteinHonsi : I can take a look. It's not entirely trivial due to the way the vertex buffers are built. We'd basically need to split the buffer when encountering null values, and then batch render the splits for each series.

Contributor

cvasseng commented Jan 10, 2018

@TorsteinHonsi : I can take a look. It's not entirely trivial due to the way the vertex buffers are built. We'd basically need to split the buffer when encountering null values, and then batch render the splits for each series.

@TorsteinHonsi

This comment has been minimized.

Show comment
Hide comment
@TorsteinHonsi

TorsteinHonsi Jan 10, 2018

Collaborator

Closed by 4ff2d10

Collaborator

TorsteinHonsi commented Jan 10, 2018

Closed by 4ff2d10

@NeuwenWolf

This comment has been minimized.

Show comment
Hide comment
@NeuwenWolf

NeuwenWolf Jan 10, 2018

Fantastic! you guys are the best.

NeuwenWolf commented Jan 10, 2018

Fantastic! you guys are the best.

@TorsteinHonsi

This comment has been minimized.

Show comment
Hide comment
@TorsteinHonsi

TorsteinHonsi Jan 11, 2018

Collaborator

@NeuwenWolf Just an off-topic comment on your "Daily totals" chart above - it looks like you're using a category axis to display dates. Your chart will probably perform (and look) better if you use a true datetime axis and let Highcharts determine the appropriate tick intervals.

Collaborator

TorsteinHonsi commented Jan 11, 2018

@NeuwenWolf Just an off-topic comment on your "Daily totals" chart above - it looks like you're using a category axis to display dates. Your chart will probably perform (and look) better if you use a true datetime axis and let Highcharts determine the appropriate tick intervals.

@NeuwenWolf

This comment has been minimized.

Show comment
Hide comment
@NeuwenWolf

NeuwenWolf Jan 11, 2018

NeuwenWolf commented Jan 11, 2018

@TorsteinHonsi

This comment has been minimized.

Show comment
Hide comment
@TorsteinHonsi

TorsteinHonsi Jan 12, 2018

Collaborator

The difference is that a datetime axis is created to intelligently put labels on round dates, like the first of each month for example. The category axis just blindly removes every n'th label. The potential performance implication is that it's trying to add as many category labels as possible, while the datetime axis doesn't have to because the user can interpolate time. Again, it is not a requirement, just best practice. See https://www.highcharts.com/docs/chart-concepts/axes#what-axis.

Collaborator

TorsteinHonsi commented Jan 12, 2018

The difference is that a datetime axis is created to intelligently put labels on round dates, like the first of each month for example. The category axis just blindly removes every n'th label. The potential performance implication is that it's trying to add as many category labels as possible, while the datetime axis doesn't have to because the user can interpolate time. Again, it is not a requirement, just best practice. See https://www.highcharts.com/docs/chart-concepts/axes#what-axis.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment