Skip to main content

Charts Not Displaying Correctly

Charts are one of the most frequently used features in Mango for visualizing point value history. When charts display incorrectly -- showing no data, unexpected values, or rendering issues -- the cause typically lies in the interaction between the data point's logging settings, the time range selection, rollup configuration, or browser-side rendering. This page provides systematic guidance for diagnosing and resolving chart-related issues.

Symptoms

  • A chart on the data point details page or a dashboard shows an empty chart with no data lines or bars.
  • The chart shows data for some points but not others on a multi-point chart.
  • Numeric values on the chart appear incorrect -- too high, too low, or flat-lined at a single value.
  • The chart shows unexpected gaps in data where values should exist.
  • The chart's Y-axis scale is wrong: all values are compressed into a thin band, or the scale extends far beyond the actual data range.
  • The chart does not update when new data arrives, despite the point showing current values elsewhere.
  • Chart images fail to render or show a broken image icon in email notifications or reports.
  • The chart is extremely slow to load or causes the browser to become unresponsive.

Common Causes

1. No Data Logged for the Selected Time Range

The most common cause of empty charts. If the data point's logging type is set to "Do not log," no historical data is stored, and charts have nothing to display. Similarly, if the point was recently created or recently enabled, there may not be enough data to fill the selected time range.

2. Wrong Time Range Selected

The Date Bar at the top of the Mango UI controls the time range used by charts on the data point details page and many dashboard components. If the time range is set to a period where no data was collected (e.g., a future date, or a period before the point was created), the chart will appear empty.

3. Rollup Type Mismatch

When viewing data over long time ranges, Mango applies rollups (statistical aggregations) to reduce the number of data points rendered. If the rollup type does not match the data characteristics, the chart may look wrong:

  • Average rollup on a binary point produces decimal values (e.g., 0.75) instead of the expected 0 or 1.
  • Sum rollup on a temperature point produces accumulated values that grow over time instead of actual temperatures.
  • First/Last rollup on a rapidly changing point may miss peaks and valleys.

4. Incorrect Unit or Displayed Unit

If the data point has a displayed unit configured that requires conversion from the stored unit, and the conversion is incorrect or the units are incompatible, the chart may show values that look wrong.

5. Auto-Scale Issues with Multi-Point Charts

When multiple points with very different value ranges are plotted on the same chart (e.g., a temperature point ranging 20-80 alongside a humidity point ranging 0-100), auto-scaling may compress one series into an unreadable band.

6. Purge Has Removed Historical Data

If the point's purge settings are aggressive (e.g., purge after 7 days), data older than the purge period no longer exists in the database. Charts requesting that time range will show empty space.

7. Browser Caching or Rendering Issues

Stale cached data, an outdated browser, or JavaScript errors in custom dashboard pages can prevent charts from rendering correctly.

8. Insufficient Point Value Cache

If the data point details page is set to Realtime mode and the Default cache size is very small, the chart may only show a few values and appear sparse.

Diagnosis

Step 1: Verify Data Exists

On the Data Point Details page:

  1. Select the data point.
  2. Check the Point Value History table. If it shows values, data exists.
  3. If using "Realtime" mode, toggle the Configure option and check that the Number of values setting is reasonable (e.g., 100 or more).
  4. If no values appear, the point is likely not logging data or was recently created.

Step 2: Check the Logging Type

Navigate to the data source editor, select the data point, and review the Logging tab:

  • If set to Do not log: No data is stored. Charts cannot display historical data.
  • If set to Interval: Data is only logged at the configured interval. Shorter time ranges between logging intervals will appear empty.
  • If set to When point value changes with a high tolerance: The point may not log frequently enough to produce a smooth chart.

Step 3: Verify the Date Bar Time Range

Check the Date Bar at the top of the page:

  • Is the time range set to a period where data was actually collected?
  • Is the "From" date before the point was created or enabled?
  • Is the "To" date in the past (not "now")?

Try setting the time range to "Last 1 Hour" or "Last 24 Hours" to see if recent data appears.

Step 4: Check the Rollup Settings

On the Date Bar, review the Rollup setting:

  • For a quick test, set rollup to None to see raw data without aggregation.
  • If "None" shows data but other rollup types do not, the issue is with the rollup configuration.
  • Check the Rollup period -- a 1-day rollup period on a 1-hour chart will produce only a single data point.

Step 5: Check the REST API Directly

Use the REST API to query point values independently of the chart rendering:

GET /rest/latest/point-values/{xid}?from=2025-01-01T00:00:00Z&to=2025-01-02T00:00:00Z&limit=100

If the API returns data but the chart does not display it, the issue is in the chart rendering (browser-side), not in data availability.

Step 6: Check the Browser Console

Open the browser's developer tools (F12) and check the Console tab for JavaScript errors. Chart rendering issues often produce error messages related to:

  • Invalid data format
  • WebSocket connection failures
  • CORS errors (for cross-origin dashboard configurations)
  • Memory allocation failures (for very large datasets)

Solutions

Solution 1: Change the Logging Type

If the point is set to "Do not log," change it to an appropriate logging type:

  • When point value changes (recommended for most cases)
  • Interval (for high-frequency data sources where only periodic snapshots are needed)
  • All data (only when every value update must be recorded)

After changing the logging type, historical data will begin accumulating. Charts will start showing data from the time the setting was changed.

Solution 2: Adjust the Time Range

Set the Date Bar to a time range that contains data:

  • Use Last 1 Hour, Last 24 Hours, or Last 7 Days presets.
  • Ensure the "From" date is after the point was created and enabled.
  • If the date filter toggle is enabled on the Events page, it may also affect the data point details page context.

Solution 3: Fix Rollup Configuration

Select the appropriate rollup type for the data:

Data TypeRecommended RollupAvoid
Temperature, pressure (numeric analog)Average, or None for short rangesSum
Energy consumption (cumulative)Last, or Delta for period consumptionAverage
Binary (on/off)None, or use a custom bar chartAverage (produces decimal values)
MultistateNone, or use a state timeline chartAverage, Sum
Counts or totalsSumAverage (dilutes the count)

Adjust the Rollup period to match the chart time range:

Chart Time RangeSuggested Rollup Period
Last 1 Hour1 Minute or None
Last 24 Hours15 Minutes
Last 7 Days1 Hour
Last 30 Days1 Day

Solution 4: Fix Unit Configuration

If chart values appear incorrect due to unit conversion:

  1. Check the point's Unit property (the raw stored unit).
  2. Check the Displayed unit property.
  3. If the conversion is incorrect, either fix the displayed unit or remove it to display raw values.
  4. Verify that the unit symbols are entered correctly (e.g., °C not C, kWh not kwh).

Solution 5: Handle Multi-Point Scale Issues

For multi-point charts with different value ranges:

  • Use dual Y-axes if the chart component supports it (available in some dashboard components).
  • Normalize values to a common scale (e.g., percentage of range) using meta data source calculations.
  • Separate points with very different ranges into separate chart components.

Solution 6: Clear Browser Cache

If the chart renders incorrectly despite correct server-side configuration:

  1. Clear the browser cache: Ctrl+Shift+Delete (Windows/Linux) or Cmd+Shift+Delete (Mac).
  2. Hard refresh the page: Ctrl+Shift+R or Cmd+Shift+R.
  3. Try a different browser to rule out browser-specific issues.
  4. Disable browser extensions that may interfere with JavaScript or WebSocket connections.

Solution 7: Reduce Data Volume for Slow Charts

If charts are slow to load or crash the browser:

  • Reduce the time range.
  • Apply a rollup to reduce the number of data points.
  • Use the Simplify algorithm on the data point to reduce dataset size.
  • Limit the number of points on a single chart to 5-10 for reasonable performance.

Prevention

  • Choose logging types intentionally when creating data points. The default "When point value changes" is appropriate for most cases, but verify that it matches your charting needs.
  • Set a sensible default rollup on each data point to ensure charts use appropriate aggregation when "Point default" rollup is selected.
  • Test charts during initial setup by adding each new point to a watch list or the data point details page and verifying that data displays correctly.
  • Adjust purge settings to retain enough data for your typical chart time ranges. If users regularly view 90-day trends, do not purge after 30 days.
  • Educate operators on the Date Bar and rollup settings so they can self-diagnose basic chart display issues.