ListPlot中的单个点着色,Mathematica中的ErrorListPlot

Jas*_*oss 10 plot wolfram-mathematica colors points

ListLinePlot做一些类似的东西,我可以得到彩色

ListLinePlot[Range[420, 680, 20], ColorFunction -> "VisibleSpectrum", ColorFunctionScaling -> False]
Run Code Online (Sandbox Code Playgroud)

Mathematica图形

但是,如帮助文件所示(" ColorFunction至少需要一个数据集Joined"),如果我做了相同的操作

ListPlot[Range[420, 680, 20], ColorFunction -> "VisibleSpectrum", ColorFunctionScaling -> False]
Run Code Online (Sandbox Code Playgroud)

Mathematica图形

我所有的观点都是蓝色的.有一个很好的方式来获得ColorFunction,为工作ListPlotJoined -> False

也就是说,是否有更好的方式来获得类似的东西

ListPlot[
 List /@ Transpose[{Range[(680 - 420)/20 + 1], Range[420, 680, 20]}], 
 PlotMarkers -> ({Graphics[{#, Disk[]}], 0.05} & /@ ColorData["VisibleSpectrum"] /@ Range[420, 680, 20])
]
Run Code Online (Sandbox Code Playgroud)

Mathematica图形

(另外,有没有人解释为什么 Mathematica需要Joined -> True使用ColorFunction?)

编辑:我也在寻找一种ErrorListPlotErrorBarPlots包装中进行类似着色的方法.

hal*_*tan 7

问题是,Joined-> True绘制了一个Line [],可以为每个包含点赋予VertexColors.我假设在设置Joined-> False时为这些点做同样的操作导致它不起作用的情况.尽管如此,Line []和Point []在您的情况下的工作方式基本相同.那是什么呢

ListLinePlot[Range[420, 680, 20], ColorFunction -> "VisibleSpectrum", 
  ColorFunctionScaling -> False] /. Line[arg___] :> Point[arg]
Run Code Online (Sandbox Code Playgroud)

Mathematica图形

顺便说一句,如果你只使用ListLinePlot,那里出现的唯一Line []指令是数据中的指令,即使你有更多的数据集和{x,y}坐标,这也应该有效

data = Transpose[Table[{{x, Sin[x]}, {x, Cos[x]}}, {x, 0, 2 Pi, 0.2}]];
ListLinePlot[data, ColorFunction -> Hue] /. Line[arg___] :> Point[arg]
Run Code Online (Sandbox Code Playgroud)

Mathematica图形