How can I change data directly from the plot ?
105 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
andrea
am 12 Mai 2020
Kommentiert: andrea
am 12 Mai 2020
How can I divide the data on the first plot by 2 using command line ?
I mean is there a way like
ax = gca ;
ax.Children(2).Children(1).Ydata/2 ;
0 Kommentare
Akzeptierte Antwort
Mehmed Saad
am 12 Mai 2020
Bearbeitet: Mehmed Saad
am 12 Mai 2020
There are two axes in your figure (two subplots) and each axes contains three line
access the gcf
f = gcf;
Now to see how many childrens it has type on cmd
f.Children
ans =
4×1 graphics array:
Legend (2.5e-07-1e-06-5e-09 0.25, 5e-07-1e-06-5e-09 0.5, 1e-06-1e-06-5e-09 1)
Axes
Legend (1e-06-5e-07-5e-09 2, 5e-07-5e-07-5e-09 1, 2.5e-07-5e-07-5e-09 0.5)
Axes
So two axes and two legends
To access first axes
f.Children(2) % for 2nd axes use f.Children(4)
ans =
Axes with properties:
XLim: [5 40]
YLim: [0 1.6000e-06]
XScale: 'linear'
YScale: 'linear'
GridLineStyle: '-'
Position: [0.1300 0.1100 0.7750 0.3768]
Units: 'normalized'
Show all properties
to see its childrens
f.Children(2).Children
ans =
3×1 Line array:
Line (1e-06-1e-06-5e-09 1 )
Line (5e-07-1e-06-5e-09 0.5)
Line (2.5e-07-1e-06-5e-09 0.25)
Access first line Ydata
f.Children(2).Children(1).YData
ans =
1.0e-06 *
0.6266 0.3493 0.1950 0.1380 0.1078
To change it i.e. divide it by 2
f.Children(2).Children(1).YData = f.Children(2).Children(1).YData/2;
Similarly you can do that for other lines
Weitere Antworten (1)
Constantino Carlos Reyes-Aldasoro
am 12 Mai 2020
To complement what Mehmed has just posted. It would be even easier if when you first create your figure, you save in handles all that is necessary, for instance:
x =[1 2 3 4];y=[4 3 2 3];
z = rand(8);
hFigure = figure(1);
hAxis1 = subplot(2,1,1);
hLines = plot(x,y);
hAxis2 = subplot(2,1,2);
hImage = imagesc(z);
Then you can modify your figure by modifying the data of the handles, say you want to change the image from z to z2 then you change it like this
z2 = randn(8);
hImage.CData=z2;
or like this
hAxis2.Children.CData = z2;
Hope that helps.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Annotations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!