2011-01-25 2 views
5

Mathematica (ListLinePlot)의 동일한 플롯에 여러 목록을 플롯하고 PlotMarkers와 PlotLegend Package를 사용하여 최종 그림을 얻으려고합니다. 문제는 Mathematica가 모든 점에 마커를 놓음으로써 어떤 마커가 플롯에 있는지 알 수 없기 때문입니다. n 개의 샘플마다 플롯 마커를 표시 할 수 있습니까 (예 : 100 점 플롯의 경우 10 포인트마다).Mathematica PlotMarkers에서 마커의 사용자 정의 간격

지시어는 현재 PlotMarkers -> {Automatic, Small}입니다.

+1

위의 코드를 실행, 벨리 사리우스에 의해 게시 됨 전철기? –

+1

StackOverflow에 오신 것을 환영하며 다음과 같은 세 가지 일을 생각 나게 해주십시오 : 1) 도움을받을 때, 귀하의 전문 분야에서 ** 답변하는 질문 **을하십시오. 2) ['FAQ를 읽으십시오.] (http://tinyurl.com/2vycnvr) 3) 좋은 질문과 답변을 볼 때 [회색 삼각형을 사용하여] upvote (http://i.imgur.com/kygEP.png), 이 시스템은 사용자가 자신의 지식을 공유함으로써 얻을 수있는 평판을 기반으로합니다. 또한 문제가있는 경우 문제를 해결할 수있는 답을 수락하는 것을 기억하십시오. ('체크 표시를 누르십시오.') (http://i.imgur.com/uqJeW.png) –

답변

3

더 많은 제어를 원하는 경우 플롯 마커의 위치가 Brett's answer 이상인 경우 마커를 수동으로 배치해야합니다. 예 (수정 브렛의 예) 물론 Point

data = Accumulate /@ RandomReal[{-1/2, 1}, {3, 100}]; 
col = {Red, Blue, Green}; 
decimate[i_] := {col[[i]], PointSize -> Medium, 
    Point /@ Transpose[{Range[1, 100, 10], data[[i, 1 ;; -1 ;; 10]]}]} 
ListLinePlot[data, PlotStyle -> col, Epilog -> Table[decimate[i], {i, 3}]] 

enter image description here

어떤 그래픽으로 대체 할 수 있습니다 당신이 원하는 개체 - 예를 들어 Text, 내가 설명 있었는지의 등 Inset ...

+0

Brett의 답변에 링크했습니다. 야로는 대답했지만, 그의 기여는 삭제했다. –

+0

@ belisarius : 감사합니다 - 혼란 스러웠을 것입니다! 수정되었습니다. – Simon

+0

+1 아이디어가 바로 있습니다. 가장 일반적인 요구 사항을 충족시키기 위해 []을 (를) 줄이기위한 매개 변수를 추가 할 수 있습니다. 좋은 분! –

4

나는 Mesh->10 같은 당신을 위해 작동합니다 추가 생각 :

data = Accumulate /@ RandomReal[{-1/2, 1}, {3, 100}]; 
ListLinePlot[data, PlotMarkers -> {Automatic, Small}, Mesh -> 10] 

ListLinePlot with a fixed number of plot markers

+2

이것은 방향 인 것처럼 보이지만 메쉬 -> 10을 메쉬 -> 5 또는 20으로 변경하는 동일한 예는 마커가 더 이상 색상이나 모양에 해당하지 않으므로 비정상적인 동작을 초래합니다. – o4tlulz

+0

예를 들어, 같은 코드를 사용하지만 Mesh -> 9를 사용하면 어떤 이유로 든 첫 번째 플롯 마커 만이 모든 곳에서 사용됩니다. http://ifile.it/j8g51q2 – Simon

2

는 또한 마커 당신이 그것을 위에 마우스 포인터를 통과 할 때 팝업 좌표 원인 Tooltip을 사용할 수 있습니다 기억 :

enter image description here

1

예 덧글에. 마커가 제대로 작동하지 않습니다.

분명히 아직 이미지를 게시 할 수 없습니다 만, 다음 코드

data = Accumulate /@ RandomReal[{-1/2, 1}, {3, 100}]; 
ListLinePlot[data, PlotMarkers -> {Automatic, Small}, Mesh -> 5] 

을 실행하는 부적절한 결과를 제공한다. 또한 동일한 수치의 데이터와 플롯 수는 개별적으로 어느 지점을 선택하기에 상당히 큽니다. 각 플롯과 데이터 범위에 대해 동일한 지시문을 유지하고 싶습니다. 각 플롯과 데이터 범위는 각각 100에서 300 사이에서 달라지기 때문에 도중에 다른 계산에 사용되는대로 다른 테이블에 저장합니다.

플롯은 당신이 가능 매 10 중 단 1 탈퇴 데이터 집합을시키면서 수, 나는 PlotMarkers와 함께 할 수있는 방법을 모르는

enter image description here

+0

코드 결과가 나에게 맞는 것 같습니다. 또는 당신이 달성하고자하는 것을 정말로 오해하고 있습니다. 그렇지 않으면 Mma를 종료하고 새로운 복사본을 시작한 다음 다시 시도해야합니다. BTW, 그리고 그냥 확인, 나는 대답을 편집하고 결과 음모를 추가 할 수 있습니다, 그래서 당신이 잘못 말할 수 있습니다 .. –

+0

@ belisarius : o4tlulz 맞습니다. 빨간색 줄과 황갈색 줄의 파란색 원을 살펴보십시오. 'Mesh -> i '의 여러 값에 대해서는 그것보다 더 나쁩니다. 명시 적'PlotMarkers'를 사용하여 해결되지 않았습니다. 'Grid'와'PlotMarkers' 옵션이 함께 잘 작동하지 않는 것 같습니다. – Simon

+0

@ o4tlulz : 당신이 위의 "대답"의 마지막 단락에서 내 대답을 언급 한 것 같습니다. 프로그래밍 방식으로 문제에 접근하는 한, 포인트를 선택하고 (x 값에 따라) 플롯 마커를 일관되게 모든 플롯에 배치 할 수 있습니다. – Simon