In Mathematica 8.

Given this:

f[x_, y_, z_] := z – x^2 – y^2 (*relation among the variable f[x,y,z]==0*)

parameter = Range[0.1, 1, 0.1];(*choice of parameter values*)

I’m trying to plot the level curves

ContourPlot[Evaluate@Table[f[x, y, z] == 0, {z, parameter}], {x, -1, 1}, {y, -1,1}, PlotLegends -> parameter]

I have the next error message:

ContourPlot::optx: “Unknown option PlotLegends in ContourPlot[{0.1

-x^2-y^2==0,0.2 -x^2-y^2==0,0.3 -x^2-y^2==0,0.4 -x^2-y^2==0,0.5 -x^2-y^2==0,0.6 -x^2-y^2==0,0.7 -x^2-y^2==0,0.8 -x^2-y^2==0,0.9 -x^2-y^2==0,1. -x^2-y^2==0},{x,-1,1},{y,-1,1},PlotLegends->parameter]”

I tried using:

Needs[“PlotLegends`”]

ShowLegend[

ContourPlot[Evaluate@Table[f[x, y, z] == 0,

{z, parameter}], {x, -1, 1}, {y, -1,1}, PlotLegends -> parameter] ]

what I should do?

=================

I had no problem evaluating what you provided (screenshot). Which version of MMA are you using? Mine’s 10.

– seismatica

Jul 16 ’14 at 23:07

@seismatica His post started with [Mathematica 8] though the formatting may have made it difficult to read.

– Mr.Wizard♦

Jul 17 ’14 at 0:02

=================

1 Answer

1

=================

There are several problems here. First, you are mixing syntax for two different systems: the old (poor) Plot Legends package from version 8 and prior, and the new improved integrated legend functions in version 9 and later. The old package used the Option name PlotLegend while the new one uses PlotLegends, which I admit is confusing.

The second problem is that the Plot Legends package does not work for ContourPlot directly:

There are two ways to use the functions in this package to place a legend in a graphic: the first can only be used as an option to the built-in functions Plot, ListPlot and ListLinePlot, while the second can be applied to any graphic.

You would need to manually specify the legend:

Something like this generic example from the documentation:

ShowLegend[

DensityPlot[Sin[x y], {x, 0, Ï€}, {y, 0, Ï€}],

{ColorData[“LakeColors”][1 – #1] &, 10, ” 1″, “-1”, LegendPosition -> {1.1, -0.4}}

]

Frankly I wouldn’t bother however as almost no one likes the look of those legends. Instead you could roll your own and use Inset, or use Jens’s solution from:

Creating legends for plots with multiple lines?