Can I scale my data independently in ploteditor (or similar) once the plot has been produced, i.e not programatically
1 view (last 30 days)
Show older comments
Thomas Dixon
on 3 May 2021
Commented: Thomas Dixon
on 3 May 2021
I would like to make a GUI where you can look at your plots in real time, then output a figure of the plot you see, then edit the data in the plot within the plot itself. a simple example might be scaling
So as an example there could be an edit field for speed, and max distance:
speed=10 (m/s)
max_distance = 100 (m)
Then press the plot button which would give time (x) and distance (y)
y=0:max_distance
x=y/speed
plot(UIAxes1,x,y) %<-------------- this has a 'nice' x axis if plotted in seconds
then hit the edit plot button and figure(1) pops up which is ready for editing in the figure window to make it look nice for presentation etc.
figure(1)
plot(x,y) %<-------------- the figure pops up in a window and I can add legends, axis labels etc.
Then someone comes along and changes the speed to:
speed=10000000 (m/s)
max_distance = 100 (m)
Then the plot would give time (x) and distance (y)
y=0:max_distance
x=y/speed
plot(UIAxes1,x,y) %<-------------- I dont care what the x-axis looks like here (and pretend I dont have access to this code)
figure(1)
plot(x,y) %<-------------- the figure pops up in a window NOW THE X-AXIS LABEL WOULD LIKE TO BE 'ns' and XData SCALED BY.*1e9
Essentially is there a tool to just arbitrarily scale the x-axis by some factor once the plot has been created?
0 Comments
Accepted Answer
Walter Roberson
on 3 May 2021
No, Mathworks does not supply a tool for that purpose. Some subsets of that behaviour are easy to program, but you specifically said that you do not want to do this by way of writing code.
Some of the details are more difficult to program. For example there might already be a data cursor callback that might be doing arbitrary transformation to the coordinates, so a thorough tool would have to locate the callback and reconstruct the implementing source code and rewrite it.
3 Comments
Walter Roberson
on 3 May 2021
You appear to be trying to create a gui for other people to use and you would like to reduce the amount of programming logic that they need.
What you asked us was for a way to do this change without any programming. What we can suggest is that you do the programming and supply a tool to your users, such as giving them a tool to scale axes and add labels and titles.
More Answers (0)
See Also
Categories
Find more on Interactive Control and Callbacks in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!