JFreeCharts TimeSeriesChart 设置域间隔

发布于 2025-01-06 15:10:30 字数 1179 浏览 0 评论 0原文

如何在TimeSeriesChart中设置Domain轴的时间间隔? 现在我有带有标签的域轴,看起来像:22.00 23.00、00.00、1.00、2.00 等。

我如何将它们设置为:2 月 11 日、2 月 12 日等。 仅当我缩放图表时,我才应该能够看到所有时间。

编辑:现在我在 SimpleDateFormat 的帮助下解决了这个问题。

DateAxis dateAxis = (DateAxis) plot.getDomainAxis();
DateFormatSymbols dfs = DateFormatSymbols.getInstance(); // default locale
dateAxis.setDateFormatOverride(new SimpleDateFormat("dd-MMM-HH:mm", dfs));

显示的图表:

在此处输入图像描述

编辑:问题仍然悬而未决:是否可以设置诸如按天分组之类的内容域轴?

编辑:更多信息:) 我尝试获取上周的一些数据,但如果数据库中的数据仅持续 1 或 2 天,图表将如下所示: 在此处输入图像描述

因为您可以在域轴上看到时间轴存储从 00.00(实际开始时间为 23.xx)到的信息10.00,这不好,因为用户应该看到数据所属的日期。在这种情况下,我创建 TimeSeries 并填充它,如下所示:

TimeSeries ts=new TimeSeries(name);
ts.addOrUpdate(new Hour(date), value);

如果我像

ts.addOrUpdate(new Day(date), value);

这样填充 ts,则图表不会显示任何数据

在此处输入图像描述

问题是如何按天制作图表组数据(也许可以借助缩放),如下图所示?

在此处输入图像描述

How to set time interval for Domain axis in TimeSeriesChart?
Now i have domain axis with labels which looks something like: 22.00 23.00, 00.00, 1.00, 2.00, etc.

How can I set them like: 11 feb, 12 feb etc.
I should have posibility to see all hourse only if I zoom chart.

Edit: Now I solve it with the help of SimpleDateFormat.

DateAxis dateAxis = (DateAxis) plot.getDomainAxis();
DateFormatSymbols dfs = DateFormatSymbols.getInstance(); // default locale
dateAxis.setDateFormatOverride(new SimpleDateFormat("dd-MMM-HH:mm", dfs));

Chart displayed :

enter image description here

Edit: The question is still open: Is it possible to set something like grouping by day for domain axis?

Edit: More information:)
I try to get some data for last week period, but if data in database only for 1 or 2 days, chart will look like this:
enter image description here

as you can see timline on domain axis store information from 00.00(actualy start time is 23.xx) till 10.00, and it's no good, because user should see day which data belongs. In this case I create TimeSeries and fill it like :

TimeSeries ts=new TimeSeries(name);
ts.addOrUpdate(new Hour(date), value);

If I fill ts like

ts.addOrUpdate(new Day(date), value);

then chart didn't show any data

enter image description here

Quistion is how to make chart group data (maybe with the help of zoom ) by days, like in the following chart?

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

萌酱 2025-01-13 15:10:30

如果您添加任何 RegularTimePeriodTimeSeries,相应的轴将使用推断的周期作为格式化的指导。使用 Day 的相关示例可以在此处找到。

附录:另请参阅有关 DateTickUnit 的相关答案

If you add any RegularTimePeriod to a TimeSeries, the corresponding axis will use the inferred period as a guide to formatting. A related example that uses Day may be found here.

Addendum: See also this related answer concerning DateTickUnit.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文