Re: ListPlot ColorFunction
- To: mathgroup at smc.vnet.net
- Subject: [mg99149] Re: ListPlot ColorFunction
- From: "Sjoerd C. de Vries" <sjoerd.c.devries at gmail.com>
- Date: Tue, 28 Apr 2009 04:48:12 -0400 (EDT)
- References: <gt3tma$npk$1@smc.vnet.net>
Hidden in the Options section of the ListPlot documentation page you'll find "ColorFunction requires at least one dataset to be Joined" Nevertheless, you can achieve what you want in a somewhat clumsy way by having ListPlot plot nine one-point plots and specifying the color for each in PlotStyle and FillingStyle (the PointSize directive goes to BaseStyle): data = {9, 4, 1, 0, 0, 0, 1, 4, 9}; ListPlot[ {#} & /@ Transpose[{Range[Length[data]], data}], Filling -> Axis, PlotStyle -> ((If[# == 0, RGBColor[1, 0, 0], RGBColor[0, 0, 1]] &) /@ data), FillingStyle -> ((If[# == 0, RGBColor[1, 0, 0], RGBColor[0, 0, 1]] &) /@ data), BaseStyle -> PointSize -> 0.02 ] Cheers -- Sjoerd On Apr 27, 11:25 am, "Serych Jakub" <Ser... at panska.cz> wrote: > Dear Mathematica users, > first let me thank you for many nice zigzag solutions from my previous post. > > Today I have another question. I need to highlight some data points in > ListPlot by changing their color. How to do it? I tried the similar solution > which somebody have sent me time ago for the same problem which I had with > Plot, but it doesn't work with ListPlot. > > In the example below I'm trying to make the zero points Red and all other > Blue. > > ListPlot[{9, 4, 1, 0, 0, 0, 1, 4, 9}, Filling -> Axis, > PlotStyle -> PointSize[0.02], > ColorFunction -> (If[# == 0, RGBColor[1, 0, 0], RGBColor[0, 0, 1]] &)] > > Thanks in advance for any help > > Jakub