RE: Bug in Package Graphics`Graphics` ?
- To: mathgroup at smc.vnet.net
- Subject: [mg26376] RE: [mg26348] Bug in Package Graphics`Graphics` ?
- From: "David Park" <djmp at earthlink.net>
- Date: Sat, 16 Dec 2000 02:40:09 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Johannes,
Most of the Mathematica plot routines, especially those in
Graphics`Graphics` are what I like to call "set-piece plots". They are
pretty good and solve most peoples needs in a simple manner. However, they
are not totally adaptable and often break down if you have very particular
needs. This is often the case if you are trying to do a really nice piece of
graphics.
However, it is usually not too difficult to design your own routines and
build up your graphics from more primitive elements. Here is a method for
producing your truncated positive and negative bar charts with two special
routines which draw and outline the bars.
For a truncated positive bar chart:
Needs["Graphics`Colors`"]
drawpositivebar[value_, center_, width_, bottom_, color_] :=
Module[{bar, xmin = center - width/2, xmax = center + width/2},
{color,
bar = Polygon[{{xmin, bottom}, {xmax, bottom}, {xmax, value}, {xmin,
value}, {xmin, bottom}}], GrayLevel[0], Line @@ bar}]
Show[Graphics[{MapThread[drawpositivebar[#2, #1, 0.8, 3,
Red] & , {{1, 2, 3, 4}, {4, 10, 5, 7}}]}],
AspectRatio -> Automatic, PlotRange ->
{{0, 5}, {2.99, 10}}, Background -> Linen,
Frame -> True, FrameTicks -> {Range[4], Automatic, None,
Automatic}, PlotLabel ->
"Truncated Positive\n Bar Chart"];
For a truncated negative bar chart:
drawnegativebar[value_, center_, width_, top_, color_] :=
Module[{bar, xmin = center - width/2, xmax = center + width/2},
{color,
bar = Polygon[{{xmin, top}, {xmax, top}, {xmax, value}, {xmin,
value}, {xmin, top}}], GrayLevel[0], Line @@ bar}]
Show[Graphics[{MapThread[drawpositivebar[#2, #1, 0.8, -3,
Red] & , {{1, 2, 3, 4}, {-4, -10, -5, -7}}]}],
AspectRatio -> Automatic, PlotRange ->
{{0, 5}, {-10.01, -3}}, Background -> Linen,
Frame -> True, FrameTicks -> {None, Automatic, Range[4],
Automatic}, PlotLabel ->
"Truncated Negative\n Bar Chart"];
David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/
> From: Ludsteck [mailto:Ludsteck at zew.de]
To: mathgroup at smc.vnet.net
> Dear Mathgroup members,
> I am very cautious in claiming to have found a bug in Mathematica, but
> here I am almost sure.
> After loading the package
> <<Graphics`Graphics`
>
> I tried to plot a simple BarChart:
>
> BarChart[{4,10,5,7}]
>
> However, if I want to restrict the plot range
>
> BarChart[{4,10,5,7}, PlotRange->{3,10}]
>
> Mathematica does not respond with an error message, but
> still plots in the range {0,10}. (However, the y-axis is not visible in
> {0,3}.)
> Furthermore, bar edges are visible only in the range {3,10}.
> Finally, if the input list contains negative values, the bars hide the
> BarLabels
> which is desastrous in my application.
>
> I am really an adherent of Mathematica, but if I am right here I have to
> state that it is not possible to create publication quality
> BarCharts with
> Mathematica. (At least not with the
> Add-On function BarChart.)
>
> Any suggestions?
>
>
>
> Johannes Ludsteck
> Forschungsbereich Arbeitsmaerkte,
> Personalmanagement und Soziale Sicherung
> Zentrum fuer europaeische Wirtschaftsforschung
> Mannheim (ZEW)
> Postfach 103443
> D 68934 Mannheim
>
> E-mail: ludsteck at zew.de
>
>