MathGroup Archive 2011

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

Search the Archive

Re: Question: 2 z-Axis scales in Plot3D?

  • To: mathgroup at
  • Subject: [mg122615] Re: Question: 2 z-Axis scales in Plot3D?
  • From: "David Park" <djmpark at>
  • Date: Thu, 3 Nov 2011 03:47:04 -0500 (EST)
  • Delivered-to:
  • References: <9812457.133315.1320231475628.JavaMail.root@m06>

The Presentations application from my web site ($50) contains several
routines that allow you to do this. (Many other things also.)

DrawBoundingBox will draw your own bounding box, which is part of the
primitive graphics so you have direct access to it.

XTickLine and XSymbolicScale allow you to draw 3D scales with numbers or
with symbols. (There are also YTickLine and YSymbolicScale but you don't
need them here.)

TickLine3D will take a XTickLine or XSymbolicScale and convert it to a 3D

There are also convenient postfix forms of the Rotation, Translation and
Scale transformations so these scales can be placed on any edge of the
bounding box and you can place different scales on different edges. You can
also use the scales as free standing objects.

There are examples in the documentation, specifically in TickLine3D.

There is also Text3D capability that will draw true 3D text, also block
characters, that rotates with the image and hides behind surfaces. However,
this is not integrated into the 3D scales.

David Park
djmpark at  

From: Ross Martin-Wells [mailto:rossmart at] 


I am trying to find a way to make a Plot3D graph with two different scales
for the Z axis.  I saw many options for using FrameTicks in 2D systems, but
this seems to be because each frameaxis has its own place held in
FrameLabel or the Ticks section, i.e. there are four places for the 2D
graph {top,bottom, left,right}.  For the Plot3D, all options seem to only
recognize 3 axes, though I can move the axis that is labeled between any of
the four options using AxesEdge.  I feel that I should be able then to
label any and all of the 12 axes if I so wished.  I have also tried
relabeling two graphs and showing them on top of each other, but this just
seems to default to the first set of options.  For example, some code I
have used:

a = Plot3D[x y, {x, 0, 1}, {y, 0, 1},
  AxesEdge -> {{1, 1}, {-1, -1}, {-1, 1}},
  Ticks -> {{{0, "0 M"}, {.5, ".5 M"}, {1, "1 M"}}, {{0, "0 n"}, {.5,
      ".5 n"}, {1, "1 n"}}, {{-1, "-1Z"}, {0, "0Z"}, {1, "1Z"}}}]
b = Plot3D[x y, {x, 0, 1}, {y, 0, 1},
  AxesEdge -> {{1, 1}, {-1, -1}, {1, -1}},
  Ticks -> {{{0, "0 M"}, {.5, ".5 M"}, {1, "1 M"}}, {{0, "0 n"}, {.5,
      ".5 n"}, {1, "1 n"}}, {{-1, "-1B"}, {0, "0B"}, {1, "1B"}}}]
Show[{b, a}, PlotRange -> All]

any help or directions to a previous answer would be much appreciated


Physics Graduate Student
Penn State University
104 Davey Lab
Box 23
University Park, PA 16802

  • Prev by Date: Re: iteration question
  • Next by Date: Re: Problems with DistributionFitTest
  • Previous by thread: Question: 2 z-Axis scales in Plot3D?
  • Next by thread: Re: Question: 2 z-Axis scales in Plot3D?