       RE: Problems with Plot in Mathematica 4.0, Combining Plots with Different Domains

• To: mathgroup at smc.vnet.net
• Subject: [mg45846] RE: [mg45806] Problems with Plot in Mathematica 4.0, Combining Plots with Different Domains
• From: "David Park" <djmp at earthlink.net>
• Date: Tue, 27 Jan 2004 04:50:39 -0500 (EST)
• Sender: owner-wri-mathgroup at wolfram.com

```Manfred,

There are a number of ways to combine two plots with different domains.

f1[x_] := 1/2x^2 - x
f2[x_] := -1/2x^2 + x

We could combine them into one function using UnitSteps and make a regular
Plot.

f[x_] := f1[x](UnitStep[x + 3] - UnitStep[x]) +
f2[x](UnitStep[x] - UnitStep[x - 3])

Plot[f[x], {x, -4, 4},
Frame -> True,
PlotRange -> All];

But if you want to deal with them as separate functions you could combine
two plots with the following statement.

Block[{\$DisplayFunction = Identity},
g1 = Plot[f1[x], {x, -3, 0}];
g2 = Plot[f2[x], {x, 0, 3}];
]
Show[g1, g2,
Frame -> True,
PlotRange -> {{-4.1, 4.1}, All}];

Here the Block statement gives a local value to \$DisplayFunction so as to
supress the side plots. Or you could use the DisplayTogether command from
Graphics`Graphics`.

Needs["Graphics`Graphics`"]

DisplayTogether[
Plot[f1[x], {x, -3, 0}], Plot[f2[x], {x, 0, 3}], Frame -> True,
PlotRange -> {{-4.1, 4.1}, All}];

The last two methods are sometimes a little tricky because they don't always
pick up all Options from the second plot.

Another method is to try the DrawGraphics package from my web site below.

Needs["DrawGraphics`DrawingMaster`"]

Draw2D[
{Draw[f1[x], {x, -3, 0}],
Draw[f2[x], {x, 0, 3}]},
Frame -> True,
PlotRange -> {{-4.1, 4.1}, All}];

Here the Draw statements are like the Plot statement except they just
extract the primitive graphics without making side plots. You could easily
add in other plot type graphics and Lines, Points, Text primitives or
graphics directives, or you could manipulate the primitive graphics before
drawing.

David Park

From: Manfred Fischer [mailto:manfis at t-online.de]
To: mathgroup at smc.vnet.net

Hi,

I want to plot the two functions in one Plot output
+0.5x^2-x (definition-range -3<=x<=0)
-0.5x^2+x (definition-range 0<=x<=3)