【发布时间】:2023-04-02 01:03:01
【问题描述】:
我有一堆图表,我想根据并非源自图表内的事件将它们全部缩放以突出显示值 x +- 范围内的系列。
如果我没看错的话,所有缩放图表方法(例如chart::zoomInDomain)都会采用屏幕坐标。因此,我正在寻找一种将 x 域值转换为图表中屏幕坐标的方法,或者找到一种基于系列值进行缩放的替代方法。
【问题讨论】:
标签: java swing jfreechart
我有一堆图表,我想根据并非源自图表内的事件将它们全部缩放以突出显示值 x +- 范围内的系列。
如果我没看错的话,所有缩放图表方法(例如chart::zoomInDomain)都会采用屏幕坐标。因此,我正在寻找一种将 x 域值转换为图表中屏幕坐标的方法,或者找到一种基于系列值进行缩放的替代方法。
【问题讨论】:
标签: java swing jfreechart
一种方法是调整相关轴以位于所需范围的侧面。确切的公式将取决于您的数据和目标。作为一个具体的例子,从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);
【讨论】: