
Sediment data is typically display in diagrams with two axes, a core depth axis and an age axis. Here is a MATLAB script to convert depths into ages and display a sediment parameter in a diagram with both age and depth axis.
First, we create a synthetic data set of a sine wave with a period of 200.
clear, clc, close all t = 0 : 650; rec = 0.5*sin(2*pi*t/200) + 0.5;
Then we load the age depth conversion table contained in the file tiepoints.txt.
tiepoints = load('tiepoints.txt');
We can display the relationship between age and depth in an age-depth plot by typing
figure('Position',[100 800 500 500],...
'Color',[1 1 1])
axes('Position',[0.2 0.2 0.7 0.7],...
'XLim',[0 700],...
'YLim',[0 400],...
'YDir','Reverse',...
'Box','On',...
'FontSize',14)
line(tiepoints(:,2),tiepoints(:,1),...
'LineWidth',1,...
'LineStyle','None',...
'Marker','o')
xlabel('Age (kyr BP)')
ylabel('Depth in Core (m)')
Next, we interpolate this relationship to an evenly-spaced age scale.
age = 0 : 50 : 650; age = age'; ageint = interp1(tiepoints(:,2),tiepoints(:,1),... age,'linear'); depthintlabels = num2str(ageint,'%3.0f\n');
and display in a first diagram with two axes.
figure1 = figure('Position',[100 500 1800 600],...
'Color',[1 1 1]);
ax(1) = axes('Position',[0.1 0.4 0.8 0.4],...
'Color','None',...
'XLim',[0 650],...
'YLim',[-0.1 1.1],...
'XTick',0:50:650,...
'YLim',[-0.1 1.1],...
'FontSize',14);
line1 = line(t,rec,...
'LineWidth',1);
xlabel(ax(1),'Age (kyr BP)')
ylabel(ax(1),'Proxy Value')
ax(2) = axes('Position',[0.1 0.25 0.8 0.4],...
'Color','None',...
'XLim',[0 650],...
'XTickMode','Manual',...
'XTick',0:50:650,...
'XTickLabels',depthintlabels,...
'YLim',[0 1],...
'YTick',[],...
'YColor','None',...
'FontSize',14);
xlabel(ax(2),'Depth in Core (m)')

Then we interpolate the ages to an evenly-spaced depth scale
d = interp1(tiepoints(:,2),tiepoints(:,1),t,... 'linear'); depth = 0 : 20 : 300; depth = depth'; depthint = interp1(tiepoints(:,1),tiepoints(:,2),... depth,'pchip'); ageintlabels = num2str(depthint,'%3.0f\n');
and again display in a first diagram with two axes.
figure1 = figure('Position',[100 100 1800 600],...
'Color',[1 1 1]);
ax(1) = axes('Position',[0.1 0.4 0.8 0.4],...
'Color','None',...
'XLim',[0 300],...
'XTick',0:20:300,...
'YLim',[-0.1 1.1],...
'FontSize',14);
line1 = line(d,rec,...
'LineWidth',1);
xlabel(ax(1),'Depth in Core (m)')
ylabel(ax(1),'Proxy Value')
ax(2) = axes('Position',[0.1 0.25 0.8 0.4],...
'Color','None',...
'XLim',[0 300],...
'XTick',0:20:300,...
'XTickMode','Manual',...
'XTickLabels',ageintlabels,...
'YLim',[0 1],...
'YTick',[],...
'YColor','None',...
'FontSize',14);
xlabel(ax(2),'Age (kyr BP)')

References
Trauth, M.H. (2014) A new probabilistic technique to build an age model for complex stratigraphic sequences. Quaternary Geochronology, 22, 65–71, https://doi.org/10.1016/j.quageo.2014.03.001.
