我有一堆图表,我想把它们全部放大,以突出显示值x+范围内的系列,该范围基于一个不是源于图表的事件。如果我读对了所有的缩放图表方法,比如 chart::zoomInDomain 获取屏幕坐标。所以我要找的是一种方法,要么将x域值转换为图表中的屏幕坐标,要么找到另一种基于序列值的缩放方法。
chart::zoomInDomain
57hvy0tb1#
一种方法是调整相关轴,使其位于所需范围的侧面。确切的公式将取决于你的数据和目标。作为一个具体的例子,从这里开始,以下更改为 createChart() 生成下面的图表。它将缩放到序列中最后一天的值,在域轴的两侧是两天,在范围轴上是成比例的量:
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);
请参阅此处和此处的相关答案。
1条答案
按热度按时间57hvy0tb1#
一种方法是调整相关轴,使其位于所需范围的侧面。确切的公式将取决于你的数据和目标。作为一个具体的例子,从这里开始,以下更改为
createChart()
生成下面的图表。它将缩放到序列中最后一天的值,在域轴的两侧是两天,在范围轴上是成比例的量:请参阅此处和此处的相关答案。