2015-08-05 3 views
0

Я пытаюсь сделать 3D-график с точками в 3 разных плоскостях, соединенных пунктирными линиями. Данные приведены в двух группах:Пунктирные линии в Matlab 3d plot

Группа 1 Я пытаюсь соединиться с черными полупрозрачными пунктирными линиями - здесь у меня проблемы.

Группа 2 Я пытаюсь соединиться с черными полупрозрачными пунктирными линиями - работает просто отлично.

В группе 1, кажется, что Matlab рисует две линии сверху друг друга, полупрозрачную нормальную линию с пунктирной непрозрачной линией сверху. Коды для двух линий идентичны, только данные и цвета различаются.

Вот весь мой код:

data = xlsread('rdata.xlsx','PCOA','A2:E43'); 
weight = xlsread('rdata.xlsx','PCOA','A45:C45'); 

data(:,1)= -data(:,1); 

depl0 = data(1:7,[1,2]); 
deol4 = data(8:14,[1,2]); 
depl9 = data(15:21,[1,2]); 
undepl0  = data(22:28,[1,2]); 
undepl4 = data(29:35,[1,2]); 
undepl9  = data(36:42,[1,2]); 

depl0 = [ones(7,1),depl0]; 
deol4  = [2*ones(7,1),deol4]; 
depl9 = [3*ones(7,1),depl9]; 
undepl0  = [ones(7,1),undepl0]; 
undepl4 = [2*ones(7,1),undepl4]; 
undepl9  = [3*ones(7,1),undepl9]; 

hold on 
s1 = plot3(depl0(:,1),depl0(:,2),depl0(:,3),'.','MarkerSize',20); 
s2 = plot3(undepl0(:,1),undepl0(:,2),undepl0(:,3),'s','MarkerSize',5,'MarkerEdgeColor',[0 1/255 127/255],'MarkerFaceColor',[0 1/255 127/255]); 
set(s1,'color',[0 0 0]); 
set(s2,'color',[0 1/255 127/255]); 
l = legend('FoxP3-DTR^+','FoxP3-DTR^-'); 
set(l,'box','off','Location','NorthOutside','Orientation','horizontal'); 
s1 = plot3(deol4(:,1),deol4(:,2),deol4(:,3),'.','MarkerSize',20); 
s2 = plot3(undepl4(:,1),undepl4(:,2),undepl4(:,3),'s','MarkerSize',5,'MarkerEdgeColor',[0 1/255 127/255],'MarkerFaceColor',[0 1/255 127/255]); 
set(s1,'color',[0 0 0]); 
set(s2,'color',[0 1/255 127/255]); 

s1 = plot3(depl9(:,1),depl9(:,2),depl9(:,3),'.','MarkerSize',20); 
s2 = plot3(undepl9(:,1),undepl9(:,2),undepl9(:,3),'s','MarkerSize',5,'MarkerEdgeColor',[0 1/255 127/255],'MarkerFaceColor',[0 1/255 127/255]); 
set(s1,'color',[0 0 0]); 
set(s2,'color',[0 1/255 127/255]); 

% Line depleted (7 instance) 
for i = 1:7 
    X = [depl0(i,1), deol4(i,1), depl9(i,1)]; 
    Y = [depl0(i,2), deol4(i,2), depl9(i,2)]; 
    Z = [depl0(i,3), deol4(i,3), depl9(i,3)]; 
    line(X,Y,Z,'color',[0 0 0 0.5],'LineWidth',1.5,'LineStyle','--'); 
end 

% Line undepleted (7 instance) 
for i = 1:7 
    X = [undepl0(i,1), undepl4(i,1), undepl9(i,1)]; 
    Y = [undepl0(i,2), undepl4(i,2), undepl9(i,2)]; 
    Z = [undepl0(i,3), undepl4(i,3), undepl9(i,3)]; 
    plot3(X,Y,Z,'color',[0 1/255 127/255 0.5],'LineWidth',1.5,'LineStyle','--'); 
end 

% Grid 
for i =1:3 
    X = [i,i]; 
    Y = [0.1,0.1]; 
    Z = [-0.4,0.4]; 
    line(X,Y,Z,'color',[87/255 91/255 69/255]); 
    Y = [-0.1,-0.1]; 
    line(X,Y,Z,'color',[87/255 91/255 69/255]); 
    Y = [-0.3,-0.3]; 
    line(X,Y,Z,'color',[87/255 91/255 69/255]); 
    Y = [-0.5,-0.5]; 
    line(X,Y,Z,'color',[87/255 91/255 69/255]); 
    Y = [-0.5,0.3]; 
    Z = [0,0]; 
    line(X,Y,Z,'color',[87/255 91/255 69/255]); 
    Z = [0.4,0.4]; 
    line(X,Y,Z,'color',[87/255 91/255 69/255]); 
    Z = [0.2,0.2]; 
    line(X,Y,Z,'color',[87/255 91/255 69/255]); 
    Z = [-0.2,-0.2]; 
    line(X,Y,Z,'color',[87/255 91/255 69/255]); 
end 


% Three planes 
syms x y z 
ezsurf(sym('1'),y,z,[-0.5 0.3 -0.4 0.4]); 
ezsurf(sym('2'),y,z,[-0.5 0.3 -0.4 0.4]); 
ezsurf(sym('3'),y,z,[-0.5 0.3 -0.4 0.4]); 
shading interp 
alpha(0.1) 
CM=[143/255,151/255,104/255]; 
CM=repmat(CM,64,1); 
colormap(CM); 

ytitle = strcat('PC 1 (',num2str(weight(1)),'%)'); 
ztitle = strcat('PC 2 (',num2str(weight(2)),'%)'); 
ylabel(ytitle, 'rotation', 42); 
zlabel(ztitle); 
%title('PCoA of colon samples'); 
xlabel('Days post DTH arthritis induction'); 
set(gca,'ZTick',-0.4:0.2:0.4) 
set(gca,'ZTickLabel',{'','','','',''}) 
set(gca,'YTick',-0.5:0.2:0.3) 
axis([1 3 -0.5 0.3 -0.4 0.4]) 
set(gca,'YTickLabel',{'','','','',''}) 
set(gca,'XTick',1:3) 
set(gca,'XTickLabel',{'Day 0','Day 4','Day 9'}) 
set(gca,'fontsize',12,'fontname','Arial','fontweight', 'bold'); 
set(l,'fontsize',12,'fontname','Arial') 
set(get(gca,'XLabel'),'FontSize',12,'fontname','Arial','fontweight', 'bold'); 
set(get(gca,'YLabel'),'FontSize',12,'fontname','Arial','fontweight', 'bold'); 
set(get(gca,'ZLabel'),'FontSize',12,'fontname','Arial','fontweight', 'bold'); 
h = rotate3d; 
set(h,'ActionPostCallback',@align_axislabels); 


set(get(gca,'title'),'visible','off'); 
% 'FontSize',16, 'fontweight', 'bold'); 
set(gca,'ticklength',[0.0 0.0]);%style 6 
set(gca,'tickdir','out');%style 7 
grid on 
hold off 
view([18 30]) 
% print -r600 % set resolution 
% saveas(figure(1),'PCoA1-2.tif') % save image as a .tiff file 

Вот данные:

data = 

    0.1866 0.0749 -0.1734  NaN   0 
    0.2001 0.0151 -0.0393  NaN   0 
    0.1057 -0.3854 0.0431  NaN   0 
    0.2048 0.1505 -0.1489  NaN   0 
    0.0482 -0.0006 -0.0153  NaN   0 
    0.1343 0.2477 0.0639  NaN   0 
    0.1886 -0.0139 0.1079  NaN   0 
    0.1600 -0.0637 -0.1771  NaN 4.0000 
    0.1571 -0.0156 -0.0961  NaN 4.0000 
    0.1465 -0.1112 -0.0855  NaN 4.0000 
    0.1758 0.0253 -0.1127  NaN 4.0000 
    0.1655 0.0928 -0.1666  NaN 4.0000 
    0.1491 0.0166 0.1677  NaN 4.0000 
    0.1526 0.1451 -0.0703  NaN 4.0000 
    0.1232 -0.3176 -0.0935  NaN 9.0000 
    0.1360 0.1054 -0.1026  NaN 9.0000 
    0.1938 -0.1332 -0.0826  NaN 9.0000 
    0.2053 -0.1563 0.0799  NaN 9.0000 
    0.1603 0.1803 -0.1093  NaN 9.0000 
    0.1371 0.2595 -0.0826  NaN 9.0000 
    0.1947 -0.1083 -0.0422  NaN 9.0000 
    0.0839 0.0808 0.1522  NaN   0 
    0.1757 0.0522 0.1423  NaN   0 
    -0.3631 0.0319 0.0232  NaN   0 
    -0.4284 0.0358 -0.0161  NaN   0 
    0.0265 0.2092 0.2739  NaN   0 
    -0.3970 -0.0270 -0.0618  NaN   0 
    -0.3005 -0.1025 -0.0696  NaN   0 
    0.1598 0.1318 0.0927  NaN 4.0000 
    0.1753 -0.1845 0.1493  NaN 4.0000 
    -0.2959 -0.0671 -0.1156  NaN 4.0000 
    -0.4260 0.1470 -0.0722  NaN 4.0000 
    -0.0407 -0.0009 0.0680  NaN 4.0000 
    -0.2739 -0.1550 0.0370  NaN 4.0000 
    -0.3063 -0.0713 0.0483  NaN 4.0000 
    0.2129 -0.1394 0.1374  NaN 9.0000 
    0.1940 -0.0936 0.0295  NaN 9.0000 
    -0.3589 0.0083 -0.0007  NaN 9.0000 
    -0.4232 0.0520 0.0296  NaN 9.0000 
    0.0577 0.1052 0.2468  NaN 9.0000 
    -0.3794 -0.0535 0.0540  NaN 9.0000 
    -0.4176 0.0332 -0.0130  NaN 9.0000 

weight = 

    35.2300 11.4800 7.6900 

Вот график производства по коду: http://imgur.com/4lAtNAx

Я хотел бы линии группы DTR +, чтобы они выглядели аналогично группе DTR.

Заранее благодарен!

+0

Привет, попробуйте отправить MVCE: https: //stackoverflow.com/help/mcve, то есть мы должны иметь возможность скопировать код и запустить его как есть. Кроме того, если это «визуальная» проблема, есть ли возможность показать нам, как выглядит желаемый результат? –

+0

также нам нужен номер версии Matlab и рендер фигур, с уважением, желаемый формат вывода фигуры, если вы хотите его сохранить. – thewaywewalk

+0

К сожалению, моя репутация ниже 10, а stackoverflow не позволяет отправлять фотографии. Сожалею. – embacify

ответ

0

Я понял проблему.

Очевидно, что линии, представляющие разные, были артефактом, созданным конкретным углом обзора. Когда я вручную вращать график в окне просмотра, линии появились пунктирная по желанию ...

Извините за неудобства и спасибо за быстрые ответы ...

Смежные вопросы