У меня есть несколько файлов CSV, каждый из которых имеет два столбца, например:
X Y
-93 4.3249598727193514e-5
-92 0.0017247823556143683
-91 0.009753849011964329
-90 0.03288075738113382
.....
96 0.004679186277368824
97 0.0003355482914528248
98 3.1077568577666192e-6
Я отображаю все файлы CSV в каталоге, используя следующий код:
function myplot(x,y, marker)
plot(x(:,1),x(:,2)); hold on;
end
dd = '.';
dx = 0;
all_in_one = 1;
files = getAllFiles(dd,'*.csv',1); % dir(strcat(dd,'*.csv_'))
Legend = cell([size(files),1]);
k =1;
set(0,'DefaultFigureWindowStyle','docked')
s = pwd;
h = figure('Name',s(20:end));
domag = 0;
for file = files'
data = load(file{1});
if all_in_one == 0
figure('Name',file{1});
end
if dx == 1
[C, ~, ic]= unique(data(:,3));
A = [C accumarray(ic,data(:,4),[],@mean)];
myplot(A); hold on;
else
myplot(data); hold on;
end
avg = num2str(round(avg,1));
Legend{k}= strcat(file{1}, '::', avg);
k = k+1;
end
if all_in_one == 1
legend(Legend);
f2 = strrep(s(20:end),'\','_');
f2 =strcat(f2,'.fig');
saveas(h,f2,'fig');
%saveas(h,f2,'png');
end
И у меня есть следующий рисунок: ![enter image description here](https://i.stack.imgur.com/Mr5MS.png)
Как вы можете видеть, он строит некоторые кривые между -100 и 100. Теперь я хочу сместить графики примерно с 50 доправо.Однако, когда я сдвигаю его, числа, которые выходят за границы, должны появиться сзади слева от изображения, так что текущие пересечения 0 и 90 должны быть на 50 и -50.
Я могу сдвинуть xось, используя следующую команду в цикле.Тем не менее, я не очень понимаю, как перевести все данные!
shift = -50;
data(:,1) = data(:,1)+shift;