MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: old vs new(V7) BarChart3D

  • To: mathgroup at smc.vnet.net
  • Subject: [mg104326] Re: old vs new(V7) BarChart3D
  • From: Albert Retey <awnl at gmx-topmail.de>
  • Date: Wed, 28 Oct 2009 04:05:03 -0500 (EST)
  • References: <hc6g9p$5jt$1@smc.vnet.net>

mtnMan wrote:
> I've been using BarChart3D in pre-7 versions of Mathematica to produce
> density plots for discrete probability distributions.  For example,
> 
>  BarChart3D[
> (binorm = {{4,15,24,15,4},{15,60,90,60,15},{24,90,144,90,24},
> 	 {15,60,90,60,15},{4,15,24,15,4}})/Max[binorm],BarSpacing->.5,
> Boxed->False,Axes->{False,False,False},
>   BaseStyle->{Medium,FontFamily->"Arial"},PlotLabel->"Field Study"]
> 
> Pre V7, this generated nice, histogram-like bar bars.  But now it
> generates what I would call a microsoft-like two-dimensional bar graph
> with a fake 3rd dimension that conveys no information.  I want the old
> one back!  I've discovered I can get the old one back by using
> 
>  Needs["BarCharts`"]
> 
> but then I get all sorts of compatibility warnings.  Is there
> something else I should be using instead of the new BarChart3D[] to
> generate something like the old style BarChart3D[]?  

The closest I could come up is this:

ListPlot3D[(binorm = {{4, 15, 24, 15, 4}, {15, 60, 90, 60, 15}, {24,
      90, 144, 90, 24}, {15, 60, 90, 60, 15}, {4, 15, 24, 15, 4}})/
  Max[binorm],
 InterpolationOrder -> 0, Mesh -> False, Filling -> Bottom,
 FillingStyle -> Opacity[1],
 Boxed -> False, Axes -> {False, False, False}, AspectRatio -> 1
 ]

Of course alteratively you can just create Cuboids from your data, which
will look exactly as your old BarChart, but will be some extra effort,
but probably not too much...

> It is not
> Histogram3D because I already have the probabilities or counts for
> each data point.  Histogram3D wants raw data that it will bin for
> you.  Any suggestions?  Or should I just load the legacy version and
> ignore the warnings?

It depends on whether it is a problem for your other code that now some
other System` symbols are shadowed by their BarChart` versions, too...
Here is a trick that will avoid namespace conflicts and suppress the
warnings:

Block[{$ContextPath={"System`"}},Quiet[Needs["BarCharts`"]];]

Now you can use the BarCharts` version with explicit BarChart`-prefix:

BarCharts`BarChart3D[
(binorm={{4,15,24,15,4},{15,60,90,60,15},{24,90,144,90,24},
{15,60,90,60,15},{4,15,24,15,4}})/Max[binorm],
BarSpacing->.5,Boxed->False,Axes->{False,False,False},
BaseStyle->{Medium,FontFamily->"Arial"},PlotLabel->"Field Study"
]

and without these prefixes everything else will use the normal System`
versions. Note that you might need to use the BarChart`-Prefix for some
of the option names, too.

hth,

albert


  • Prev by Date: Re: old vs new(V7) BarChart3D
  • Next by Date: Distribution of state occupancies in a multistate Markov model
  • Previous by thread: Re: old vs new(V7) BarChart3D
  • Next by thread: Re: old vs new(V7) BarChart3D