Advanced charting or plotting in JavaFx? - charts

I'm looking for a way to have more features than the basic JavaFx charts provide.
"realtime" plotting of < 50 points divided into multiple scatter series
adding custom text labels to points in scatter
drawing some lines inside the chart
maybe custom color for single some scatter points
I've already seen some people using multiple charts overlayed with transparent background. I'm not sure if this is good solution that will work with future updates to JavaFx.
Now I'm looking for suggestions. Thanks in advance!

I spent a lot of time looking for a free Java plotting library that is compatible to the Eclipse Public License (JFreeChart is not), supports SVG export (JavaFx charting does not) and let me specify plots in detail. The plotting capabilities should be similar to the features of the free scientific plotting tool Veusz that is based on python and QT. Veusz allows for example to set the orientation and size of minor ticks and everything else I ever wanted to tweek.
I used the charting features of JavaFx and tried to write a converter from JavaFx to SVG ... and stopped that after a certain amount of frustration:
https://github.com/stefaneidelloth/JavaFxNodeToSvg
Finally I decided to write javafxd3, a Java wrapper for d3.js based on the WebView and the code from gwt-d3:
https://github.com/stefaneidelloth/javafx-d3
That wrapper is applied in my main project Treez to provide some atoms for scientific plotting in Eclipse:
https://github.com/stefaneidelloth/treez
javafxd3 works well if you do not need to transfer much data between Java and JavaScript. The WebView has some performance issues/limits that can be relevant for more advanced applications. Have a look at the demo suite of javafxd3 to get an idea of that limitations and read
Performance of WebView in JavaFX
With the wrapping strategy of javafxd3 it is also possible to use plotly.js and other advanced JavaScript plotting libraries that are based on d3.js for your JavaFx application.
In the last two years there has not been much progress in JavaFx. The SceneBuilder has been abandoned by Oracle and JavaFx might be a dead end. If the charting features of JavaFx do not fit your needs and you don't want to use my JavaScript embedding work around javafxd3 ... check if JFreeChart fulfills your needs regarding licensing and features:
http://www.jfree.org/jfreechart/
If you are actually not limited to Java I would recommend Veusz/Python:
https://veusz.github.io/
or the direct usage of some JavaScript libraries:
https://d3js.org/
https://plot.ly/javascript/
Edit
I do not use Java and the wrapper any more but directly JavaScript.

I don't have an exact solution, but I had a similar need. I found that charting libraries were fairly poor in most programming languages.
However, I found that JavaScript had a huge selection of good charting (plotting) libraries.
My suggestion is to use a webview, and then display the chart in that using JavaScript and html using a library like d3 or dimple. If you don't know any CSS/html/JavaScript there might be a learning curve.

Related

Charts with DevExpress / DevExtreme

Hi I'm searching for a good chart plugin for my web-application, which can solve some of my requirements. To date, I've tested follow chart plugins:
Kendo UI
FusionCharts
HighCharts
Angular Charts
The plugin highcharts solves all of my requirements, but it's really expensive. The others don't solve all of my requirements, so I have to search another one. The solution of a hand-made chart needs a lot of time and that means for our company, it's also expensive. Now I've found the framework DevExpress. Before I invest a lot of time to test it, I would like to inform myself, if it's possible to make charts with DevExpress with this requirements:
Any number of y-axes with various values
Events (detect if clicked for example)
Costume style with css (I think I saw it on their website)
Integrate it as HTML in custome code
Supports JSON
Mixed line-style (for example, a part of a line in the chart is solid, another is dotted, but it's the same line)
Responsive Design
My results with highcharts:
Any number of y-axes with various value types:
Mixed linetypes in same line (blue line):
Special chart constalations:
This special requirements are for the healthcare, because they have some weird and special charts they need for checking medical results. So it's simply complicate, to find a good plugin. If there is someone who has a knowledge with DevExpress and charts and can answer me I would be thankfull.
Cheers.
Any number of y-axes with various values
DevExtreme has Multiple Axes Demo
Events (detect if clicked for example)
DevExtreme Charts have handlers for events. Here is a demo illustrates onPointClick
Costume style with css (I think I saw it on their website)
See it in Appearance Customization Article & Customize Points and Labels demo
Supports JSON
Remote Data Source Using an Ajax Query Demo
Responsive Design
DevExtreme Charts looks good on phones, tablets and desktops (Mobile & Web)
You can see more in Widgets Gallery Demo & Documentation

Dynamic Chart using Xamarin Forms

I am newbie in Xamarin; I know there must be ready components for what I need, already I searched but not yet found.
I need to create a dynamic graphic like this:
http://www.highcharts.com/demo/dynamic-update
I wore this in PhoneGap (html5 + JS), but now I'm moving to Xamarin forms and would like to know if any third component is what I need or I'll have to do everything from scratch.
Thank you.
I'm currently looking into graphing too and OxyPlots seems to be a pretty good line graph tool. I don't think it supports dynamic updating so you'd have to program it to update manually when new data points come available.
I've not gotten round to actually using this myself but I thought I'd post this here in case it works for you.
Edit: Here's a list of examples. Also you can add it to your project using nuget so it should be easy to set up.
I'm using Syncfusion controls for Xamarin.Forms and I'm satisfied with it. They also have a free license for individual developers and small businesses.
For dynamically updated Xamarin charts SciChart offers an extremely high performance solution. With the SciChart Xamarin Chart control you can draw up to a million points, zoom, pan and scroll big datasets interactively.
Check out performance demos here:
https://www.scichart.com/example/xamarin-chart-realtime-fifo-scrolling-chart-example/
https://www.scichart.com/example/xamarin-chart-performance-demo-example/
https://www.scichart.com/example/xamarin-chart-ecg-monitor-demo-example/
Disclosure: I am the tech lead on the SciChart Xamarin project

chart library which can edit graph by dragging points?

I'm looking for preferably javascript (but flash would do too) charting library which would be able to render time series as line chart and then allow to drag points in chart to change the underlying data.
I was said that Excel can do exactly the same thing, but I need it on web. No well-known charting library like Highcharts, amCharts, GoogleCharts or dygraphs cand apparently do that - I found some draggable graphs solutions like WireIt or http://radokirov.com/js-graph-editor/ but these are nodes and edges types of graphs not really-usable for chart drawing.
Do you know any ready for use solution to this problem? I don't care whether it's opensource or commercial.
Late response; I might help future visitors, though.
I'm looking for something similar. try: http://www.jqplot.com/deploy/dist/examples/customHighlighterCursorTrendline.html
Some other options (hopefully helpful to future visitors):
FusionCharts: https://www.fusioncharts.com/charts/visually-editable-charts/editable-line-chart
Chart.js (plugin): https://github.com/chrispahm/chartjs-plugin-dragData

Advice for building simple bar chart, but with custom styling

I have some data that is displayed in a bar chart, using Google's Visualization API. Was simple enough until designers redesigned it... Now it appears to be something that is beyond what Google can help me with.
Given the attached mockup (and note the finer details like reflection and gradients!)- how would you go about building it? Using some existing graphing libraries? Homebrew from the ground up?
Thanks for any advice.
If you need to adhere to the custom design requirements as depicted in the image above, I would build a charting application using a more generalized graphics library such as Rapheal.
While it doesn't provide a simple API for plugging data into a chart, it does provide the ability to build a chart with the following:
a variety of shapes (i.e. the bars)
gradients
embedded images (i.e. the background)
You can change the visual effect using CSS.
Ofcourse you can use chuckx recommendation of Rapheal which is a SVG based Javascript Library. It can accept JSON values so say if you have JSON from Google API you could feed in directly.
Option 2 : HTML Canvas. There are lot of HTML 5 canvas libraries like Kinect, fabric.js powerful javascript canvas libraries

iPhone Web App charting/graphing libraries

I am chewing through a specification for an iPhone Web App (NOT native). The request implies a lot of general charting functionality, mostly line chart and bar charts. On the implementation side of things, it means a lot of re-formatting of existing web content using an iPhone Web App framework (most likely JQTouch).
Given the capabilities of the device browser, is there a specific charting library you'd recommend, which runs acceptably on the mobile Safari with reasonable overhead?
We are interested in the following charting functionality:
Line and bar series
Legend display on chart area or outside
Dynamic series support (e.g. show/hide series)
Dynamic series creation in JS
I have looked at Flot so far.
The free and excellent Google Chart Tools lets you create both static image charts and interactive (javascript) charts.
They look quite nice:
There are several jQuery based plugins for that (including Flot):
http://www.reynoldsftw.com/2009/02/6-jquery-chart-plugins-reviewed/
And the Filament Group has a nice one as well:
http://www.filamentgroup.com/lab/update_to_jquery_visualize_accessible_charts_with_html5_from_designing_with/
I've used the latter though we eventually scrapped it when we realized we only needed bar graphs and it was easier to just roll-our-own simple implementation using a bit of jQuery animation and some divs.