Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JFreeChart with selectable domain axis and zoom

How to have chart like https://www.amcharts.com/demos/line-chart-with-scroll-and-zoom/

I am specifically interested in these functionalities

  1. To be able to select window of domain axis with those 2 selection controlls.
  2. To be able to zoom by selecting portion of domain axis.
  3. To be able to zoom out and see the bigger picture.
  4. To be able to map to range axis (Y) and see the value on that balloon like tool tip at any point (without Marker)

I made initial attempt here Scrollable JFree domain axis and custom marker label with help of trashgod I made domain scrollable.

I am still missing these functionality to be able to use graph effectively.

like image 250
user3833308 Avatar asked Nov 26 '25 03:11

user3833308


1 Answers

You'll have to combine several approaches:

  1. Panning controls: Invoke, setDomainPannable(true) to enable panning; in your controls, use panDomainAxes(), as shown in the implementation of mouseDragged(); use the mouse as suggested here.

  2. Zooming: Zooming by dragging on the axis is not supported, but dragging on the plot is supported; drag right to see the selection rectangle. To ensure the mouse wheel only zooms the domain axis when is rolled, invoke setRangeZoomable(false) on the ChartPanel; vice-versa for the range axis.

  3. Zooming out: Drag left to zoom out or use a button handler, as shown here.

  4. Tooltips: Enable tooltips in your chosen ChartFactory. If needed, create a custom XYToolTipGenerator, as shown here.

like image 117
trashgod Avatar answered Nov 28 '25 17:11

trashgod



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!