【问题标题】:JFreeChart with selectable domain axis and zoom具有可选域轴和缩放的 JFreeChart
【发布时间】:2017-10-24 07:44:10
【问题描述】:

如何获得像https://www.amcharts.com/demos/line-chart-with-scroll-and-zoom/这样的图表

我对这些功能特别感兴趣

  1. 能够使用这 2 个选择控件选择域轴的窗口。
  2. 能够通过选择域轴的一部分进行缩放。
  3. 能够缩小并看到更大的画面。
  4. 能够映射到范围轴 (Y) 并在任何点(不带标记)查看该气球上的值(如工具提示)

我在这里Scrollable JFree domain axis and custom marker label 进行了初步尝试,在trashgod 的帮助下,我使域可滚动。

我仍然缺少这些能够有效使用图表的功能。

【问题讨论】:

  • 这不是太宽泛。想解释一下为什么它被归类为过于宽泛?
  • 我在这个问题中要求工具,书籍等。推荐!伟大的工作鬼闭门器。敢于推理你的意见。
  • 我选择回答这个问题;虽然它可以说是宽泛的,但可以通过结合几种现有方法得出一个有用的答案。

标签: java swing jfreechart


【解决方案1】:

您必须结合几种方法:

  1. 平移控件:调用 setDomainPannable(true) 以启用平移;在您的控件中,使用panDomainAxes(),如mouseDragged()implementation 所示;按照here的建议使用鼠标。

  2. 缩放支持通过拖动轴进行缩放,但支持在绘图上拖动;拖动向右 以查看选择矩形。为确保鼠标滚轮仅在滚动时缩放域轴,请在 ChartPanel 上调用 setRangeZoomable(false);范围轴反之亦然。

  3. 缩小:向左拖动以缩小或使用按钮处理程序,如图here

  4. 工具提示:在您选择的ChartFactory 中启用工具提示。如果需要,创建自定义XYToolTipGenerator,如图所示here

【讨论】:

  • 1.只需添加`chartPanel.setMouseWheelEnabled(true);`即可解决大部分问题。谢谢。如何确保它只在滚动鼠标滚轮时缩放域轴?
  • 我正在使用`this.chartPanel = new ChartPanel(this.chart);` - 不知道我是否可以覆盖鼠标侦听器事件来覆盖自定义缩放
  • 对不起,我没试过;寻找org.jfree.chart.MouseWheelHandler
  • 很高兴它有帮助;更多关于set*Zoomable().
猜你喜欢
  • 2013-04-12
  • 2011-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 2014-07-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多