MATLAB Answers

Shift data on a figure without reploting

49 ビュー (過去 30 日間)
Mary
Mary 2020 年 7 月 15 日
コメント済み: Mehmed Saad 2020 年 7 月 17 日
Hi,
I lost my data. However, I have the plot of data. I realize that x data should be shifted of one unit. If I had the data, it would have been easy to change the code and do the shift by doing something as: x_new = x_old + ones(size(x_old)). But, unfortunately, it is not the case.
Do you know how the data can be shifted on the figure ?
thanks in advance.

採用された回答

Mehmed Saad
Mehmed Saad 2020 年 7 月 15 日
編集済み: Mehmed Saad 2020 年 7 月 15 日
Suppose that i have a figure
fig = figure,
ax = axes(fig);
rng(2017)
plot(ax,rand(1,10))
Now i dont know what is my data
Suppose that i have just the figure, let us extract data from figure
Line_Obj = findobj(gca,'Type','Line')
X = Line_Obj.XData;
Y = Line_Obj.YData;
Now i add an offset in it
hold on,plot(gca,X,Y+0.5)
Remember that this demonstration is for Line object, if your plot contains any other object like scatter, histrogram etc, you have to change it in findobj

Edit:

if you dont want to plot it, just use copyobj for that purpose
h = copyobj(Line_Obj,gca);
h.Color = 'g';
h.YData = h.YData-0.4;
  3 件のコメント
Mehmed Saad
Mehmed Saad 2020 年 7 月 17 日
walter sir, please delete your comment as the questioner deleted his question xD

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by