Hi,
The commands suggested by Jacopo and Armand, work well but if different data which include negative values are used
then the problem appears that negative values do not come in the legend.At least I could not do it.
Here is the command by Armand but I used a different input data.I got wrong color-bar...
data = Table[{x = RandomReal[{-2, 2}], y = RandomReal[{-2, 2}],
Sin[x y]}, {100}];
legendwidth = 30;
plotheights = 300;
Labeled[ListContourPlot[data, InterpolationOrder -> 3,
ImageSize -> plotheights + 21, ImagePadding -> {{20, 1}, {20, 1}},
ColorFunction -> "Rainbow"],
MatrixPlot[Transpose@{Table[i, {i, 1, -1, -0.2}]},
AspectRatio -> plotheights/legendwidth,
FrameTicks -> {{None, {-1, -0.5, 0, 0.5, 1}}, {None, None}},
ImageSize -> {legendwidth + 21, plotheights + 2},
ImagePadding -> {{1, 20}, {1, 1}},
ColorFunction -> "Rainbow"], {{Right, Top}}]
________________________________________
From: Armand Tamzarian [
mike.hon...@gmail.com]
Sent: Sunday, December 11, 2011 9:47 AM
Subject: Re: color-bar legend for the LisContourPlot
On Dec 10, 11:36 pm, Jacopo Bertolotti <
jacopo.bertolo...@gmail.com>
wrote:
> I encountered a very similar problem and I am also searching for a
> solution that do not involve either ShowLegend or a third-part package.
> The very best I came up with is something like
> GraphicsRow[{ListContourPlot[RandomReal[30, {10, 10}],
> InterpolationOrder -> 3, ColorFunction -> "LakeColors"],
> MatrixPlot[Transpose@{Table[i, {i, 1, 30}]},
> FrameTicks -> {{None, {1, 10, 20, 30}}, {None, None}},
> ColorFunction -> "LakeColors"]}]
> that is still far from ideal. Anyone with suggestions is welcomed.
>
> Jacopo
>
> On 12/09/2011 11:54 AM, Karamiarokhloo, M.P. (Mehdipasha) wrote:
>
>
>
>
>
>
>
> > Dear All,
>
> > I am using Mathematica 7 and have difficulties to plot the ListContourPlot
> > of ocean data with a neat color bar (legend).
> > For example if I have a temperature field range between {-2,30}, and I use
> > the ColorFunction Rainbow,
> > I cannot include a color-bar which has the same number of contours as the contourplot, and it does not show the related numbers for each color-shade.
> > The ShowLegend function of Mathematica is very primitive.
> > Has any body any suggestion?
>
> > Thanks you.
> > P.Karami
AFAIK Graphics grid renders fixed grid sizes so is not a good
aesthetic choice if the plots you are combining have quite different
sizes. You can do this a number of ways but I think Labeled makes this
pretty easy once you make the plot and legend the same height (this is
optional but for me it looks better):
legendwidth=30;
plotheights=300;
Labeled[
ListContourPlot[RandomReal[30, {10, 10}],
InterpolationOrder -> 3,
ImageSize -> plotheights+21,
ImagePadding -> {{20, 1}, {20, 1}},
ColorFunction -> "LakeColors"],
MatrixPlot[Transpose@{Table[i, {i, 1, 30}]},
AspectRatio -> plotheights/legendwidth,
FrameTicks -> {{None, {1, 10, 20, 30}}, {None, None}},
ImageSize -> {legendwidth+21, plotheights+2},
ImagePadding -> {{1, 20}, {1, 1}},
ColorFunction -> "LakeColors"],