2014-05-13 3 views
1

이 작품에서 여러 플롯과 "MarkerEdgeColor", "MarkerFaceColor"또는 "MarkerSize"을 사용할 수 없습니다 :matlab에 플로팅 - 하나의 플롯() 명령

plot(t, pa_iso, '-rs', 'MarkerEdgeColor', 'k', 'MarkerFaceColor', 'r', 'MarkerSize', 5); 
plot(t, pc_iso, '-gs', 'MarkerEdgeColor', 'k', 'MarkerFaceColor', 'g', 'MarkerSize', 5); 
plot(t, pa_comp, '-bs', 'MarkerEdgeColor', 'k', 'MarkerFaceColor', 'b', 'MarkerSize', 5); 
plot(t, pc_comp, '-ms', 'MarkerEdgeColor', 'k', 'MarkerFaceColor', 'm', 'MarkerSize', 5); 

이 작동 :

plot(t, pa_iso, '-rs', ... 
    t, pc_iso, '-gs', ... 
    t, pa_comp,'-bs', ... 
    t, pc_comp,'-ms'); 

하지만 내가하고 싶은 것은 이것이다 :

plot(t, pa_iso, '-rs', 'MarkerEdgeColor', 'k', 'MarkerFaceColor', 'r', 'MarkerSize', 5, ... 
    t, pc_iso, '-gs', 'MarkerEdgeColor', 'k', 'MarkerFaceColor', 'g', 'MarkerSize', 5, ... 
    t, pa_comp, '-bs', 'MarkerEdgeColor', 'k', 'MarkerFaceColor', 'b', 'MarkerSize', 5,... 
    t, pc_comp, '-ms', 'MarkerEdgeColor', 'k', 'MarkerFaceColor', 'm', 'MarkerSize', 5); 

을하며 오류가 발생합니다 :

Error using plot: 
    String argument is an unknown option. 

어떤 이유로 Matlab은 플롯을 연결할 때 좋아하지 않습니다. 첫 번째 선택을 사용 하겠지만, 문제는 동일한 숫자에 음모를 표시하지 않는다는 것입니다. 그들은 단지 나에게 유용하지 않은 별도의 그림에 그려야합니다. 동일한 플롯 명령에서 각 플롯에 대해 서로 다른 마커 가장자리 색상,면 색상 및 크기를 어떻게 지정합니까?

답변

3

For some reason, Matlab doesn't like when I concatenate the plots.

예. 그 이유 appears in the documentation (내가 강조를 위해 형식을 추가 한) :

set(H,pn,MxN_pv) sets n property values on each of m graphics objects, where m = length(H) and n is equal to the number of property names contained in the cell array pn. This allows you to set a given group of properties to different values on each object.

를이 코드를 사용하여 :

h = plot(t, pa_iso, '-rs', ... 
     t, pc_iso, '-gs', ... 
     t, pa_comp, '-bs', ... 
     t, pc_comp, '-ms', 'MarkerEdgeColor', 'k', 'MarkerSize', 5); 
     %// set linespec as well as common properties. And get a handle 
set(h, {'MarkerFaceColor'} , {'r';'g';'b';'m'}) 
%// Set other, differing properties 
+0

매우 좋습니다. 알아 둘만한! 마지막으로 말한 것을 끝내고 네 개의 모든 플롯에서 검은 색 MarkerEdgeColor 및 MarkerFaceColor를 만듭니다. 완벽하게 일했습니다. 나는 그 모든 것을 포괄하기 때문에 당신의 대답을 "가장 좋은"대답으로 정했습니다. 내가 언급 한 thewaywewalk처럼 "hold"를 사용할 수도 있지만, 이것은 더욱 강력하다고 생각합니다. – Blairg23

1

을 당신이 the following valid syntax for set으로 위의 구문을 결합 원하는 것을 달성 할 수

plot(_,Name,Value) specifies lineseries properties using one or more Name,Value pair arguments. Use this option with any of the input argument combinations in the previous syntaxes. Name,Value pair settings apply to all the lines plotted. You cannot specify different Name,Value pairs for each line using this syntax.

원하는 내용 :

plot(t, pa_iso, '-rs', ... stuff ...); hold on 
plot(t, pc_iso, '-gs', ... stuff ...); hold on 
plot(t, pa_comp, '-bs', ... stuff ...); hold on 
plot(t, pc_comp, '-ms', ... stuff ...); hold off 

hold on 다음 그림의 축 핸들을 유지하면 모든 그림이 같은 그림에 표시됩니다.

+0

매우 도움이됩니다. 내 프로젝트 중 다른 프로젝트에서 보류를 사용했고 애니메이션에서도 잘 작동한다고 생각합니다. 나는 그것을 여기에서 사용하는 것을 생각조차하지 않았다. – Blairg23