on ColorFunction and combined images?
- To: mathgroup at smc.vnet.net
- Subject: [mg47930] on ColorFunction and combined images?
- From: Sampo Smolander <sampo.smolander+newsnspam at helsinki.fi>
- Date: Fri, 30 Apr 2004 19:27:13 -0400 (EDT)
- Organization: University of Helsinki
- Sender: owner-wri-mathgroup at wolfram.com
Intro:
If I want to combine, say, a density field plot and an overlaid
curve on it, it is rather easy:
pic1 = DensityPlot[x^2, {x, 0, 1}, {y, 0, 1}, Mesh -> False]
pic2 = Plot[x^2, {x, 0, 1}]
Show[pic1, pic2]
My Case:
But say that I am plotting a densify field that that describes, just for
an example, some carbon dioxide concentrations for which a natural scale
(in the air outdoors) is something like 350...370 rather than 0...1.
I can tell DensityPlot to feed the raw concentration values
to the ColorFunction, and I can provide it my own ColorFunction:
mycf[x_] := RGBColor[0, 0, (x - 350)/20]
pic1 = DensityPlot[350 + 20*x^2, {x, 0, 1}, {y, 0, 1},
ColorFunctionScaling -> False, ColorFunction -> mycf, Mesh -> False]
pic2 = Plot[x^2, {x, 0, 1}]
Show[pic1, pic2]
The Problem:
There is no problem in drawing the pic1, but then when I try to
combine pic1 and pic2 with that Show, I get an error message:
"Argument in RGBColor[0, 0, -17.5] is not a real number between 0 and 1."
It apparently happens so that with Show, the pic1 is redrawn and (some
of?) the options that I gave in the original DensityPlot command are not
used anymore.
Is there a way around this problem?
How can I overlay other graphs with densityplots for which I have used my
own colorfunctions?
I think of the following: I could manually scale every function, that I
attempt to plot, to give out values only in the range 0...1. Then
I guess everything should work okay. But an easier way?
--
Sampo Smolander ............... http://www.cs.helsinki.fi/u/ssmoland/
Division of Atmospheric Sciences ............. University of Helsinki