Re: Re: inconsistent synatx for FillingStyle
- To: mathgroup at smc.vnet.net
- Subject: [mg103174] Re: [mg103132] Re: [mg103115] inconsistent synatx for FillingStyle
- From: Thomas Dowling <thomasgdowling at gmail.com>
- Date: Thu, 10 Sep 2009 07:17:00 -0400 (EDT)
- References: <21072336.1252406882479.JavaMail.root@n11>
Hello, I agree with David Park who gives a very neat solution. I am not a big fan of ListPlot myself as sooner or later you seem to run into a problem in that it won't do something you expect should be easy. Nevertheless, ListPlot is useful and one could use the following, perhaps? ListPlot[{{{1, 1}}, {{2, 3}}}, Filling -> {1 -> {Axis, Blue}, 2 -> {Axis, Red}}, AxesOrigin -> {0, 0}] Good luck Tom Dowling On Wed, Sep 9, 2009 at 9:41 AM, David Park <djmpark at comcast.net> wrote: > 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/ <http://home.comcast.net/%7Edjmpark/> > > > 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 > > > > > > > >