Я не думаю, что есть действительно хороший способ сделать это, но мне удалось взломать что-то похожее на то, что вы описываете. См. Ниже мой пример с методом Монте-Карло случайного блуждания.
% Setup, create test data
col = [0 0.2 0.741] ; % colour
rng(0) ; % reset random number seed
n = 20 ; % number of bins
Te = 1000 ; % simulation length
T = 600 ; % length of trajectory to plot
X = cumsum(randn(Te,1)) ;
Гадкий код участка:
% create histogram based on the end of the sample
[H,C] = hist(X(T+1:Te),n) ;
% new figure
fh = figure(999) ;
clf() ;
% trajectory for the first part of the sample
ax0 = subplot(1,2,1) ;
lh = plot(X(1:T),'Parent',ax0) ;
lh.Color = col ;
% histogram for the second part of the sample
ax1 = subplot(1,2,2) ;
bh = barh(ax1,C,H,1) ;
bh.EdgeColor = col ;
bh.FaceColor = col ;
ax1.XTickLabel = '' ;
ax1.YTickLabel = '' ;
% make both axes have the same YLim property and make sure we don't clip anything
YLim(2) = max(ax0.YLim(2),ax1.YLim(2)) ;
YLim(1) = min(ax0.YLim(1),ax1.YLim(1)) ;
ax1.YLim = YLim ;
linkaxes([ax1,ax0],'y') ;
% bump the axes together
ax0.Position = [0.13 0.11 0.440552147239264 0.815] ;
Это не красиво, но это работает. Результат:
Я не понимаю, что вы пытаетесь достичь. Я понимаю часть paths-vs-t. Но где вы хотите заговорить с правой стороны? Вдоль дополнительного измерения, так что результат 3d? Пожалуйста, дополните. О, вы хотите построить горизонтальную гистограмму, начиная с t = T, и продолжить дальше вправо? –
Я не думаю, что это было бы тривиально: вам, вероятно, понадобится две оси (возможно, но не обязательно, в двух 'subplot's), с привязанными осями' y'. Первый для траекторий, второй для графика «barh», который показывает гистограмму (которую вы затем вычислите отдельно). Но так как ограничения осей могут отличаться для двух осей, использование 'linkaxes' /' linkprop' может быть несложным. –
Да, я имею в виду переход в горизонтальную гистограмму в точке t = T – Michal