-
Notifications
You must be signed in to change notification settings - Fork 20
Ideas
Read about daru-view here , before reading this.
-
Currently daru-view depends on gems like google_visualr, lazy_high_charts. Another dependencies were Nyaplot (SciRuby gem), daru-data_tables (created during GSoC'18 daru-view project). I(Shekhar) personally think that daru-view mustbe independent from google_visualr, lazy_high_charts gems.
-
Optimise loading of js files in IRuby notebook and Web application (Using proper design pattern like proxy design pattern).
-
Number of js files are increasing in adpater/js folder. It can make gem bulky. It will be better if user is having net connectiviy then load the js online (or during the installation of the gem download the js, css files in vendor/assets folder).
-
Strategy design pattern , to change the behaviour of plot and table object runtime.
-
We are extending google_visualr, lazy_high_charts gems in daru-view, so why not to have our own gems, named daru-view-googlecharts, daru-view-highcharts and there we keep updating our code. Also we are not tracking the new commits on google_visualr, lazy_high_charts gems.
-
I personally feel that we need more modular code such that people who understand the googlecharts, highcharts official tutorials can use the our gem. (i.e. if in future some new features is added then our gem must be able to generate the js code for the same and work smoothly).
One of the good feature daru-view
provide is, we can use all the function/methods, that plotting tool already have; by accessing
chart/table class using #chart
or #table
. But we are using google_visualr
, lazy_highcharts
gem to actually access the
features present in Google charts JS, HighCharts.
-
Since google charts have more features now and developers are keep updating it. It is important for us to extend
google_visualr
gems code indaru-view
, i.e. adding more methods indaru/view/adapter/googlechart
and use the features from the google chart js directly. (I am searching new features that can be used in daru-view) -
DataView, ChartWrapper class, ChartEditor class; need to be implemented in daru/view/adapter/googlecharts.
-
Export the chart in various format: In google chart we can get the image url using
chart.getImageURI()
, then we can download the chart in different format. refer: https://stackoverflow.com/questions/46417248/how-to-export-google-chart-in-pdf
-
Similarly Highcharts js are updated in official site and more features are added. So we must keep updating our daru-view gem adapter/highcharts; i.e. extend the lazy_high_charts code in daru-view. (need to see new features that can be used in daru-view)
-
Currently
daru-view
is just using Highcharts JS but we can use more features using HighMap and HighStock. Implementation of these features in daru/view/adapter/highcharts will be very useful. Also it will be usable offline. (Since in daru-view Highcharts adapter can be used fully offline)
There are many examples present on the Highcharts -> HighStock site and some advance examples in blog as well (like this).
-
Custom styling CSS in HighCharts. Refer : https://www.highcharts.com/docs/chart-design-and-style/style-by-css
-
We can export the chart in various format (like jpg, png, svg, pdf) when we see it in browser (using iruby notebook or web app, we can see the download button at the right corner). So there must be an api(like
chart.export_png
) using which we can directly download the chart from the code.
daru-data_tables
is created only to use it in daru-view gem. But daru-data_tables
gem is not fully completed. Currently it can display table in web applications but not iruby notebook (refer https://github.com/Shekharrajak/daru-data_tables/issues/2).
We want to load large set of data piece by piece as I discussed it here : https://datatables.net/forums/discussion/43379 But it is still not implemented.
Refer blog post for more info : http://shekharrajak.github.io/blog/GSoC-2017/Coding-Period-Week-7
There are many features we can add in daru-view/DataTables.
-
Google chart JS and highcharts js must be updated whenever user want. These dependent js files are updated in the official links. Refer : https://github.com/SciRuby/daru-view/issues/47
-
To make
daru-view
workable offline, it is loading the JS files in iruby notebook and web application. But when yousee the html source code, you see bunch of lines at the page because of js. We must have something like this
//= require daru-view/highcharts/highcharts
//= require daru-view/highcharts/highcharts-more
//= require daru-view/highcharts/highstock
//= require daru-view/googlecharts
to load js files. Refer : https://github.com/SciRuby/daru-view/issues/24#issuecomment-319287696
Note:
Contributor may need to understand the codebase of nyaplot
, googlevisualr
, lazy_highcharts
, daru-data_tables
to extend the feature. May be in near future we will remove these dependent gem(by adding all our required code into daru-view only) and use only daru-view code.
I am not expecting changes in dependent gems, since our requirement is to make it usable with daru
gem and in iruby notebook as well as ruby web applications.
- These are good to start with:
- https://github.com/SciRuby/daru-view/issues/67
- https://github.com/SciRuby/daru-view/issues/66
- There are many examples present in GoogleCharts and HighCharts site, that need to be present in spec/dummy_iruby examples. More examples will lead us to know more features and bugs present if any. refer: https://github.com/SciRuby/daru-view/issues/72
-
Can we create advance charts like this by extending the daru-view/highcharts code (i.e. creating methods. How will the data will be send? How those options will be set to modify the charts?)
-
Is it good idea to have some plugin (plugin in the sense, user can add more available adapters for plotting, using some command like
daru-view add_adapter abc_charts
)? Then user will be able to use it. I don't think it is good idea to have many adapters in daru-view itself. It must be easy to extend, when required.
Apart from these, if you have any kind of idea or suggestion; that can make daru-view
better, feel free to add it here.