Closed amandahmeng closed 10 months ago
Per conversation with Akash, we will be transitioning away from Canvasjs to Apache Echarts. Right now, the aim is to implement a mini-view of a longer time series than the main focused range, similar to Yahoo Finance. See an example here: https://echarts.apache.org/examples/en/editor.html?c=area-simple.
For a smooth rollout, we'll split this task into two subtasks:
x
be the date range covered by the primary chart. The mini-view's range should cover min(2x, 3 months)
.Phase 1 is currently underway, and the graph is cosmetically the same. There are some functionalities that need to be improved. For the next sprint, the immediate action items are:
In attempt to resolve issues from last week, I ported the chart to react-apexcharts. While this permits for the multiple data shadows to appear, it suffers from some performance issues (likely due to the many DOM elements). My research has only shown me two libraries capable of showing multiple data shadows.
Apache Echarts has not responded to the feature request I've made for having multiple data shadows: https://github.com/apache/echarts/issues/18227.
While react-apexcharts was able to display multiple series in the data shadow, it suffered from severe performance issues during use. As such, I've begun the process of porting the chart library (again) to highcharts, which has major Fortune 500 support and demonstrates the ability to effectively handle hundreds of thousands of points from initial experiments. I've begun the initial porting with promising results, but there are a few features/bugs that are currently in progress:
Current issues with highcharts implementation: [x] Bug: Shadow range automatically changes when new series is added (sub-google) [x] Change z-axis of navigator labels (or consider tooltip on navigator)
By default, Highcharts uses server side exporting. I have switched this to client-side exporting. Will aim to resolve faulty font issue.
When removing all series and attempting to re-add them, the primary series doesn't update.
We are implementing an axis partitioning method to display series on different axes based on the maximum values in that series. This will help to better see fluctuations in values.