2011-01-25 4 views
5

Mathematica(ListLinePlot)の同じプロットに複数のリストをプロットしようとしており、最終的な図を得るためにPlotMarkersとPlotLegend Packageを使用しています。問題はMathematicaがすべての点にマーカーを付けることで、どのマーカーがプロット内にあるのかを知ることが難しいことです。 n個のサンプルごとにプロットマーカーを表示することは可能ですか(100点プロットの場合は10点ごと)。Mathematica PlotMarkersのマーカーのカスタム間隔

現在のところ、指令はPlotMarkers - > {Automatic、Small}です。

+1

上記のコードを実行し、ベリサリウス投稿しますポイント? –

+1

私はStackOverflowを歓迎し、私たちが通常ここで行う3つのことを思い出させることができます:1)あなたが助けを受けても、あなたの専門分野で**質問に答えてください** 2)['FAQsを読む] 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

任意のグラフィックに置き換えることができますしたいオブジェクト - 例えばTextInsetなどを...

+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

これは方向だと思われますが、同じ例でMesh-> 10をMesh-> 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をシャットダウンして新しいコピーを作成してからやり直してください。私はあなたの答えを編集して結果のプロットを追加するので、何が間違っているかをコメントすることができます。 –

+0

@ belisarius:o4tlulzが正しいです。赤い褐色の線の青い円をプロットしてください。 'Mesh - > i 'のさまざまな値に対して、それはそれよりもさらに悪いです。明示的な 'PlotMarkers'を使うことで修正されていません。 'Grid'と' PlotMarkers'のオプションが一緒にうまくいくとは思われません.... – Simon

+0

@ o4tlulz:私はあなたが上記のあなたの "答え"の最後の段落で私の答えを指していたと思います。プログラム的に問題に近づく限り、ポイントを選択することができ(x値に基づいて)、プロットマーカー全体をプロット全体に一貫して配置することができます。 – Simon