【问题标题】:Is there a way to zoom a JFreechart chart to a value on X axis?有没有办法将 JFreechart 图表缩放到 X 轴上的值?
【发布时间】:2023-04-02 01:03:01
【问题描述】:

我有一堆图表,我想根据并非源自图表内的事件将它们全部缩放以突出显示值 x +- 范围内的系列。

如果我没看错的话,所有缩放图表方法(例如chart::zoomInDomain)都会采用屏幕坐标。因此,我正在寻找一种将 x 域值转换为图表中屏幕坐标的方法,或者找到一种基于系列值进行缩放的替代方法。

【问题讨论】:

    标签: java swing jfreechart


    【解决方案1】:

    一种方法是调整相关轴以位于所需范围的侧面。确切的公式将取决于您的数据和目标。作为一个具体的例子,从here 开始,对createChart() 的以下更改会生成下面的图表。它放大到系列中最后一天的值,在域轴两侧是两天,在范围轴上是比例量:

    int n = dataset.getItemCount(0);
    double dMin = dataset.getX(0, n - 3).doubleValue();
    double dMax = dataset.getX(0, n - 1).doubleValue();
    domain.setRange(dMin, 2 * dMax - dMin);
    ValueAxis range = plot.getRangeAxis();
    double rMin = dataset.getY(0, n - 3).doubleValue();
    double rMax = dataset.getY(0, n - 1).doubleValue();
    range.setRange(rMin, 2 * rMax - rMin);
    

    另请参阅相关答案hereherehere

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-06
      • 1970-01-01
      • 2020-10-18
      • 1970-01-01
      • 2017-10-24
      • 1970-01-01
      • 1970-01-01
      • 2019-11-02
      相关资源
      最近更新 更多