JFreeChart:如何在时间轴缩小时缩放 Y 轴?

我在 JFreeChart 中创建了一个图,由一个TimeSeriesCollection和组成XYPlot。水平轴使用DateAxis,垂直 (Y) 轴使用NumberAxis。如果水平轴使用我有数据点的所有日期,我在使用时得到正确的 Y 轴刻度:


Y1axis.setAutoRangeIncludesZero(false);

Y1axis.setRangeWithMargins(LeftSeries.getRangeBounds(true));

现在我只想从可用时间数据的一部分创建一个图。例如:我有涵盖四年的数据点,但只想创建第二年的图。为此,我创建了一个日期范围(MinDate是我要显示的最早数据点,MaxDate是我要显示的最新数据点):


dateAxis.setMinimumDate(MinDate);

dateAxis.setMaximumDate(MaxDate);

这会根据需要缩放水平轴。但是,如果我现在使用相同的代码来缩放 Y 轴 ( Y1axis.setRangeWithMargins(LeftSeries.getRangeBounds(true))),我将获得适用于整个数据集的整个垂直范围。我想要的是适合日期范围的垂直刻度MinDate~ MaxDate。我已经尝试了一些方法来使垂直轴正确缩放,但我的尝试都没有任何效果。例如:


double LowValue = Y1axis.getLowerBound();

double HighValue = Y1axis.getUpperBound();

Y1axis.setRange(LowValue, HighValue);

不工作。我应该使用什么代码来调整垂直 (Y) 轴上的比例以适应图中显示的水平时间轴数据点?


蛊毒传说
浏览 111回答 1
1回答

慕标5832272

您只需为轴启用自动范围Y1axis:Y1axis.setAutoRangeIncludesZero(false); Y1axis.setAutoRange(true);例子:所有数据:禁用自动量程的值子集:启用自动范围的值的子集:
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java