5

我试图在 Mathematica (ListLinePlot) 的同一个图中绘制多个列表,并使用 PlotMarkers 和 PlotLegend 包来获得最终数字。问题是 Mathematica 为每个点都放置了一个标记,这使得很难判断哪个标记在图中的位置。是否有可能每 n 个样本出现一个绘图标记(例如,对于 100 点绘图,每 10 个点)。

目前的指令是 PlotMarkers->{Automatic, Small}。

4

4 回答 4

4

我认为添加类似的东西Mesh->10应该适合你:

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

具有固定数量的绘图标记的 ListLinePlot

于 2011-01-25T03:02:33.803 回答
3

如果您想对绘图标记的位置进行更多控制,而不是布雷特的回答,那么您可能必须手动放置标记。例如(修改布雷特的例子)

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}]]

在此处输入图像描述

当然Point可以替换为您想要的任何图形对象 - 例如TextInset等等......

于 2011-01-25T05:50:11.087 回答
2

还请记住,当您将鼠标指针移到标记坐标上时,您可以使用Tooltip使标记坐标弹出:

在此处输入图像描述

于 2011-01-25T05:05:29.023 回答
1

我在评论中描述的例子。标记的行为不正常。

显然我还不能发布图片,但运行以下代码

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

应该给出不正确的结果。此外,同一图中的数据和图的数量非常大,可以单独选择哪些点,我想为不同的图和数据范围保留相同的指令,因为它们在每种情况下往往在 100 到 300 之间变化,我有将它们保存在不同的表中,因为它们在此过程中用于其他计算。

情节 由 belisarius 发布,运行上面的代码

在此处输入图像描述

于 2011-01-25T07:02:36.913 回答