Re: inconsistent synatx for FillingStyle and PlotStyle? or How to make vertical lines in ListPlot have diffenent colors?
- To: mathgroup at smc.vnet.net
- Subject: [mg103132] Re: [mg103115] inconsistent synatx for FillingStyle and PlotStyle? or How to make vertical lines in ListPlot have diffenent colors?
- From: "David Park" <djmpark at comcast.net>
- Date: Wed, 9 Sep 2009 04:41:16 -0400 (EDT)
- References: <21072336.1252406882479.JavaMail.root@n11>
Nasser, Sometimes it is such a chore to screw around a set-piece plot to a custom plot. (But some people on this list are good at it.) If each line is to have its own custom style why not abandon ListPlot and do something like this: filledLine[color_, {x_, y_}] := {color, Style[Line[{{x, y}, {x, 0}}], Antialiasing -> False], Directive[color, AbsolutePointSize[4]], Point[{x, y}]} Graphics[{filledLine @@@ {{Red, {1, 1}}, {Blue, {2, 3}}}}, AspectRatio -> .6, Frame -> True, PlotRange -> {{-.1, 2.2}, {0, 3.2}}] You could allow more style options in the filledLine routine, depending on your needs. Since all the filled lines are vertical we can make them crisper using the Antialiasing option. David Park djmpark at comcast.net http://home.comcast.net/~djmpark/ From: Nasser Abbasi [mailto:nma at 12000.org] Problem: Make a ListPlot, and have each Point be a different color. Solution: Use Directive ListPlot[{{{1, 1}}, {{2, 3}}}, PlotStyle -> {Directive[Red], Directive[Blue]}, AxesOrigin -> {0, 0}] Problem : Make a ListPlot, but with vertical lines, and have each line be a different color. You would expect the synatx to be the same as above, just use Filling->Axis and use FillingStyle-> insteadl of PlotStyle->, right? But it does not work Solution attempt: ListPlot[{{{1, 1}}, {{2, 3}}}, Filling -> Axis, FillingStyle -> {Directive[Red], Directive[Blue]}, AxesOrigin -> {0, 0}] Now I looked at help, and it says: "Directives can be combined using Directive[g1,g2,....]" So, I tried this ListPlot[{{{1, 1}}, {{2, 3}}}, Filling -> Axis, FillingStyle -> Directive[Red, Blue], AxesOrigin -> {0, 0}] And this did not work either. I also tried ListPlot[{{{1, 1}}, {{2, 3}}}, FillingStyle -> {Red, Blue}, AxesOrigin -> {0, 0}, Filling -> Axis] I also tried ListPlot[{{{1, 1}}, {{2, 3}}}, FillingStyle -> Directive[{Red, Blue}], AxesOrigin -> {0, 0}, Filling -> Axis] Am I getting any closer? I tried above 10 other ways, and can't get it to do this. so I give up :) Any idea how to make each vertical line be colored differently according to my own list of colors? thanks, --Nasser