Ignition Reporting Module Graphs: XY Chart X-Axis Data Density Issue in Reporting Module

Hi all,

I’m running into a challenge with the XY Chart in Ignition’s 'Reporting Module', specifically related to how it handles time-based data on the X-axis.

I have a chart currently populated by a query that counts parts per hour, and it works fine when displayed across an 8-hour range. However, when I modify the query to count parts per minute instead of hourly, the resulting graph becomes unreadable or just returns "garbage" as if the chart can’t handle the volume of data being fed into it.

Here’s some context:

  • The data range I’m charting is an 8-hour shift. (Bound to a pop up calendar and shift dropdown menu in a report viewer window.)
  • Hourly counts produce a clean and readable trend.
  • Minute-by-minute data required by management (which would mean 480 data points for an 8-hour shift) seems to overwhelm the Reporting Module’s charting capabilities.
  • I’ve already attempted modifying the chart configuration with a script to allow for more plot points, but the issue persists. I have since deleted these scripts but I can recreate them if you need more insight.

Has anyone else encountered similar issues with XY charts in the Reporting Module when increasing data granularity? Are there best practices or workarounds (like downsampling, aggregation, or custom scripting) that have worked for you?

Thanks in advance for any insight.

Regards,
Stephen

Hi acdc,
When you're saying "garbage", do you meant the actual points or just the domain axis's labels?

Hi Vi_Quang,

To clarify, the issue is with the X-axis labels (domain axis) and how the chart renders time when using minute-level data.

Here’s a screenshot of the graph:

As you can see, the X-axis is unreadable, it’s showing some massive epoch-based timestamps (like 1,712,230,000,000), and there's no proper time scale. What I expected was a clean hourly layout, for example, from 8:00 AM to 4:00 PM, with ideally about 60 plot points between each hour (e.g., every minute). I know 60 is too many, 10 points would do if possible.

Instead, what I’m seeing:

The X-axis gets overwhelmed, probably because minute-by-minute data creates too many ticks.
The graph doesn’t space or label the time meaningfully, it just shows these huge numbers, which makes it useless for the end user.

What I’m hoping to figure out is:
How can I keep the data at minute-level granularity, but only label e.g. every 6 minutes or so on the X-axis?

Any guidance on configuring the domain axis or scripting around this in the Reporting Module would be hugely appreciated!

XY charts plots lines on X-Y axes, but is configured to show numeric categories on the X axis.
Did you try Timeseries chart? It will be a better fit for your use case, especially if your data is time-based.

1 Like

Hi Ujwal,

Yes, I’ve actually tried both the Timeseries chart and the XY chart, and unfortunately I’m seeing the same result with each. The X-axis still ends up displaying huge epoch-style numbers rather than clean, readable time labels, and the plot becomes unreadable once I bring in minute-level granularity.

I suspect the root issue is still related to how the Reporting Module handles high-frequency time data, regardless of chart type, maybe something about the dataset structure or how the chart parses the timestamps?

Ideally, I’d like to see:

  • Plot points along the X-axis like 8:00 AM, 8:10 AM, 8:20 AM, etc.
  • And 6 points per hour, so it's still detailed but not overloaded

Is there a formatting or scripting approach you’d recommend to clean up the axis, or a way to force the chart to treat the timestamp column as an actual time-based axis?

Thanks for your help!

I have the graph working it's just not going into enough detail.

You can configure the X-axis label format to display readable and consistent time values using the Options > Date Format setting in the chart configuration.

The Time Series chart automatically adjusts the labels based on the time range and data density to prevent label overlap.

For demonstrate, I’ve included two charts in the attached report:

  • One with 1,000 data points
  • Another with 100 data points
    In both, I enabled the label rotation option to maximize visibility of the time labels(scripting option).

If you're looking to control the spacing between ticks (e.g., set a fixed interval like 10 minutes), you’ll likely need to implement a chart customization script using methods from the org.jfree.chart.axis package.
Timeseries chart example.zip (22.6 KB)

3 Likes

Thanks a million. I will try this out and I'll let you know how I get on.