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