Frequently Asked Questions

the highcharts java api

You can generate charts without a browser using the HyJavaCharts Library and the Highcharts Node Export Server.

Highcharts provides a Node Export Server which operates as a HTTP server.
It converts Highcharts charts to static image files. It supports PNG, JPEG, SVG, and PDF output; and the input can be either SVG, or JSON-formatted chart options. Further information is available from the links below.

You have the option to send requests to the Highcharts provided public Export Server or install your own private Export Server.

The Javascript chart options can be generated from your Java application using the HyJavacharts library and then sent to the Export Server where they are converted to images and returned to your application.

Our Demo page has a link to a demonstration application that generates chart images using HyJavaCharts and the Node Export Server.

For more information on the Highcharts Node Export Server refer to the following links:
https://github.com/highcharts/node-export-server/blob/master/README.md
https://www.highcharts.com/docs/export-module/render-charts-serverside
https://www.highcharts.com/docs/export-module/setting-up-the-server

At this stage we only support the Highcharts product.

Having said that, it is on our radar to develop HyJavaStock and HyJavaMaps. We will monitor demand for these products.

The HyJavaCharts library has been compiled with Java 1.8. There are no external dependencies.

The library does use several modules of the Jackson JSON library. The modules are compiled with Java 1.6 and 1.7.
These modules are included in the HyJavaCharts jar so are not external dependencies.

Our primary goal is for the Java API to exactly match the Highcharts Javascript API.
To achieve this we made the decision to map a Java class to each Highcharts parent option. (ie. parent to other options).

For example, the animation chart option appears under chart and also under each plotOptions and series type, to map this exactly we created an Animation class for each animation chart option.

When using the library this is straight forward as you always reference an object from its parent class.
For example:

chartOptions.chart().animation().duration(500);

You would never need to code:

Animation a = new Animation();

I have configured a chart with both column and pie chart types using the SeriesPie and SeriesColumn classes as below, why does the chart display both types as line charts? After all I have specified SeriesPie and SeriesColumn.

SeriesPie seriesPie = new SeriesPie();
...options...
chartOptions.series().add(seriesPie);

SeriesColumn seriesColumn = new SeriesColumn ();
...options...
chartOptions.series().add(seriesColumn );

Even though you have used the SeriesPie and SeriesColumn classes you must still set the chart types as shown below.

SeriesPie seriesPie = new SeriesPie();
seriesPie.type(SeriesType.PIE);
...options...
chartOptions.series().add(seriesPie);

SeriesColumn seriesColumn = new SeriesColumn ();
seriesColumn.type(SeriesType.COLUMN);
...options...
chartOptions.series().add(seriesColumn );

Otherwise they will default to Line. This is true for all chart types.
For the usual case of a chart with only 1 type you would specify the type using the chart.type option.

chartOptions.chart().type(ChartType.COLUMN);