Java JFreeChart:当时间轴缩短时,如何缩放Y轴?
我已经在JFreeChart中创建了一个绘图,由Java JFreeChart:当时间轴缩短时,如何缩放Y轴?,java,scale,jfreechart,yaxis,Java,Scale,Jfreechart,Yaxis,我已经在JFreeChart中创建了一个绘图,由TimeSeriesCollection和XYPlot组成。水平轴使用日期轴,垂直(Y)轴使用数字轴。如果水平轴使用的是我有数据点的所有日期,则在使用时,我会得到一个适当的Y轴比例: Y1axis.setAutoRangeIncludesZero(false); Y1axis.setRangeWithMargins(LeftSeries.getRangeBounds(true)); 现在,我只想从可用时间数据的一部分创建一个绘图。例如:我有四年的
TimeSeriesCollection
和XYPlot
组成。水平轴使用日期轴
,垂直(Y)轴使用数字轴
。如果水平轴使用的是我有数据点的所有日期,则在使用时,我会得到一个适当的Y轴比例:
Y1axis.setAutoRangeIncludesZero(false);
Y1axis.setRangeWithMargins(LeftSeries.getRangeBounds(true));
现在,我只想从可用时间数据的一部分创建一个绘图。例如:我有四年的数据点,但只想创建第二年的绘图。为此,我创建了一个日期范围(MinDate
是我要显示的最旧数据点,MaxDate
是我要显示的最新数据点):
这将根据需要缩放水平轴。但是,如果我现在使用相同的代码缩放Y轴(yAxis.setRangeWithMargins(LeftSeries.getRangeBounds(true))
),我会得到适合整个数据集的整个垂直范围。我想要的是适合日期范围的垂直刻度MinDate
~MaxDate
。
我尝试了一些方法来正确缩放垂直轴,但没有一个是好的。例如:
double LowValue = Y1axis.getLowerBound();
double HighValue = Y1axis.getUpperBound();
Y1axis.setRange(LowValue, HighValue);
不起作用。
我应该使用什么代码来调整垂直(Y)轴上的比例,以适应绘图中显示的水平时间轴数据点?您只需启用Y1轴的自动范围:
Y1axis.setAutoRangeIncludesZero(false);
Y1axis.setAutoRange(true);
例如:
所有数据:
禁用自动范围的值子集:
启用自动范围的值子集:
很明显,但不知何故我忽略了这一点。谢谢Topaco,它回答了我的问题。
Y1axis.setAutoRangeIncludesZero(false);
Y1axis.setAutoRange(true);