为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

蛊毒传说 2023-03-23 15:04:02
我在 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) 轴上的比例以适应图中显示的水平时间轴数据点?
查看完整描述

1 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

您只需为轴启用自动范围Y1axis

Y1axis.setAutoRangeIncludesZero(false);
Y1axis.setAutoRange(true);

例子:

所有数据:

//img1.sycdn.imooc.com//641bfa0200017cd006550325.jpg

禁用自动量程的值子集:

//img1.sycdn.imooc.com//641bfa0c000149ba06550324.jpg

启用自动范围的值的子集:

//img1.sycdn.imooc.com//641bfa1c0001c89a06500323.jpg


查看完整回答
反对 回复 2023-03-23
  • 1 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信