Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Plots] Allow multiple range axes in Overlay Plots #2321

Closed
charlesh88 opened this issue Mar 20, 2019 · 9 comments · Fixed by #6153
Closed

[Plots] Allow multiple range axes in Overlay Plots #2321

charlesh88 opened this issue Mar 20, 2019 · 9 comments · Fixed by #6153

Comments

@charlesh88
Copy link
Contributor

charlesh88 commented Mar 20, 2019

Allow a user to configure and display multiple range axes (Y axes currently) ticks for fields with different range values. All currently available controls for the range axis should be made available to multiple ones, including auto-scale | manual min-max. Issues around comparative units and scale need to be considered: are there constraints imposed to ensure that the range axis plots at a meaningful scale, or is it up to the user to ensure they choose correctly when configuring the plot?

From Rick Elphic, 2015:

Plots of two quantities having different y-scale values can be very handy. In other words, a double-Y plot. Example: if I want to monitor two quantities of very different value ranges that may have a relationship, then having them on the same plot panel makes good use of screen real estate.

Relates to VISTA 241
@mudinthewater: any additional thoughts?

@mudinthewater
Copy link

@charlesh88 Yep that's the one! I think this is a case where it should be up to the user to ensure they choose correctly - the use-cases are too broad otherwise.

An example of where we'd do this is having an ON/OFF enumeration combined with the power draw of the subsystem that it controls. We want to see the on/off enumeration on a scale that makes sense (likely across the whole graph where 0 is off and 1 is on) and we'd want to see the power draw on an entirely different scale, but sharing the same plot.

So let's say bus_voltage is a float that ranges from 0v-32v and that power_state is an enum that ranges from 0-1 (OFF-ON). But it also has an error state of 255. So 0-1-255 (OFF-ON-ERR). I probably want to see the 0-1 case on the same plot with the voltage, but explicitly exclude the error case by setting the Y-axis bounds to 0 and 1. The bus voltage would probably be autoscaled, as I don't really care what scale the voltage is.

@charlesh88
Copy link
Contributor Author

@mudinthewater Great use case, thanks!

@PackElend
Copy link

Same here, a simple use case:
revolution speed and temperature over time

any chance to make this happen? This is essential to do some analysis.

@mudinthewater
Copy link

@PackElend That's another great example of where this would be used!

@PackElend
Copy link

@PackElend That's another great example of where this would be used!

so, who makes it possible :) ?

@mudinthewater
Copy link

Seeing requests for this again @charlesh88; I wonder if this is something worth an MCR with MGSS so they can fund it?

@shefalijoshi
Copy link
Contributor

Testing instructions:

  1. Ensure regular telemetry endpoints work fine in Plots view.
  2. Ensure Stacked Plots work fine - including changes to inspector configuration
  3. Ensure already existing Overlay Plots render and work as expected - including any inspector configuration changes
  4. Create a new Overlay Plot, add multiple telemetry endpoints to the plot and move the telemetry around between y axes using the Elements Pool. (Stacked Plots should not show these changes)
    You should see 3 Y axis buckets in edit mode NOTE: You should not need to navigate away from the plot when you move series between axes.
    After moving series between y axes, please check that the scale and y axis ticks are shown as expected.
    Ability to show/hide all series within a Y axis
    Y axis configuration for all 3 Y axes in the inspector view
  5. Repeat Step 4 for an existing overlay plot (from OpenMCT 2.1.5)

@scottbell
Copy link
Contributor

scottbell commented Jan 24, 2023

  1. Verified locally with YAMCS
  2. Verified locally with YAMCS
  3. Verified locally with YAMCS
  4. Moving all telemetry to axis 2 causes weirdness with plots:
Screen.Recording.2023-01-24.at.7.46.35.PM.mov
  1. Throws an error on an old plot if plot select on OpenMCT load:
Uncaught TypeError: Cannot read properties of undefined (reading 'min')
    at s.onAddPoint (MctChart.vue:213:33)
    at o.emit (index.js:144:27)
    at d.add (PlotSeries.js:422:14)
    at TelemetryAPI.js:338:29
    at Array.forEach (<anonymous>)
    at Object.callback (TelemetryAPI.js:337:46)
    at eval (realtime-provider.js?3884:243:1)
    at Array.forEach (<anonymous>)
    at socket.onmessage (realtime-provider.js?3884:213:1)

and causes the plot to hang:
image

navigating away to another object and back causes the plot to render properly.

@charlesh88
Copy link
Contributor Author

Verified fixed Testathon 2023-01-31.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants