Индивидуальная раскраска точек в ListPlot, ErrorListPlot в Mathematica

Я могу получить цветной ListLinePlot , выполнив что-то вроде

ListLinePlot[Range[420, 680, 20], ColorFunction -> "VisibleSpectrum", ColorFunctionScaling -> False]

Mathematica graphics

Однако, как указано в файле справки (« ColorFunction требует как минимум один набор данных должен быть Объединен "), если я сделаю эквивалент

ListPlot[Range[420, 680, 20], ColorFunction -> "VisibleSpectrum", ColorFunctionScaling -> False]

Mathematica graphics

, все мои точки будут синими. Есть ли хороший способ заставить ColorFunction работать для ListPlot с Joined -> False ?

То есть, есть ли лучший способ получить что-то например

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

?

Mathematica graphics

(Кроме того, есть ли у кого-нибудь объяснение , почему Mathematica требует Joined -> True , чтобы использовать ColorFunction ? )

Редактировать: Я также ищу способ сделать подобную раскраску с помощью ErrorListPlot в пакете ErrorBarPlots .

10
задан Jason Gross 31 December 2011 в 22:42
поделиться