2016-03-16 1 views
3

У меня есть участок прибоя, в котором я хотел бы иметь две оси y. Кажется, я не могу найти какую-либо другую дискуссию.Несколько осей для одного участка приборостроения

Ближайший я получил до сих пор:

surf(peaks); 
view(0,0) 
ax(1) = gca; 
axPos = ax(1).Position; 
ax(2) = axes('Position',axPos, 'Color', 'none','XTick',[],'ZTick',[],'YAxisLocation','right'); 
linkprop(ax, 'CameraPosition'); 
rotate3d on 
+0

Согласно [документации] (http://www.mathworks.com/help/matlab/ref/axes-properties.html# property_yaxislocation) 'YAxisLocation' игнорируется при переключении на трехмерный вид. – Suever

+1

Думаю, вам нужно «взломать» систему, вручную создав вторую ось с тиками и метками. Вдохновение может быть там: http://www.mathworks.com/matlabcentral/fileexchange/3245-plot3axisatorigin – Crowley

+0

Спасибо вам обоим. Я посмотрю вашу ссылку, Кроули, спасибо. @Suever: Я попытался построить невидимый серф со смещением, чтобы обойти проблему, о которой вы говорите, но безуспешно. – JCKaz

ответ

1
% Desired plot 
surf(peaks); 

% Save axis 
ax(1) = gca; 

% Use the position of the first axis to define the new axis 
pos = ax(1).Position; 
pos2 = pos - [0.08 0 0 0]; 
ax(2) = axes('Position',pos2,'Color', 'none'); 

% Plot random line in 3D, just make sure your desired axis is correct 
plot3(ones(length(peaks),1), 10:10:length(peaks)*10,... 
    ones(length(peaks),1), 'Color','none') 

% Make plot, and non-desired axes, invisible 
set(gca,'zcolor','none','xcolor','none','Color','none') 

% Link axes 
linkprop(ax, 'View'); 
+1

Вы можете установить все цвета 'gca' в одной команде. И отметьте ответ на этот вопрос. – Crowley

+0

Конечно, не знаю, почему у меня было три строки для цветов. Спасибо, @ Кроули! Я не могу принять ответ до завтра. Я сделаю это как можно скорее. – JCKaz