From graphics-request at octave dot org Sat Mar 5 13:23:52 2005 Subject: Re: contour From: Shai Ayal To: "John W. Eaton" Cc: Daniel J Sebald , octave maintainers mailing list , graphics@octave.org, Paul Kienzle , Victor Munoz Date: Sat, 5 Mar 2005 21:30:07 +0200 ------=_Part_828_10229840.1110051007909 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi all, Following Paul's request, I did some beatifying for the code I use in octplot to turn it into something that could be enjoyed (?) by all octave users. The zip archive consists of 3 files: 1. __contourc__.cc the low level c++ to compute contour levels, adapted from plplot by Victor Munoz and myself 2. contourc.m -- basically just does input argument checking for __contourc__ since I'm not that fluent in the octave c++ interface. Someone with a bit more knowledge can easily integrate contourc and __contourc__ into one c++ function. The interface of contourc is matlab compatible 3. contour.m -- plots the output of contourc using gnuplot commands. This has two problems stemming from the fact that octave can't read gnuplot's state. contour.m must set "hold on" and "gset nokey", but it cannot restore them to their previous state. This trio of files almost recreates the matlab contour command. Two big missing things are contours for non-rectangular grids and support for NaN's I am of course open to suggestions on how to improve the code. Hope this helps, Shai On Mon, 24 Jan 2005 13:56:10 -0500, John W. Eaton wrote: > On 24-Jan-2005, Daniel J Sebald wrote: > > | Anyone recall the issue with the comment below?: > | > | -- Function File: contour (X, Y, Z, N) > | Make a contour plot of the three-dimensional surface described by > | Z. Someone needs to improve `gnuplot''s contour routines before > | this will be very useful. > | > | What is the problem with gnuplot's contour? > > The problem I was thinking of when I wrote that comment was that > gnuplot implements contour plots as a special type of 3D plot instead > of a 2D plot. So even though the final graph has only two dimensions, > it has a much different appearance than other 2D plots produced by > gnuplot and it is somewhat harder to combine a contour plot with > general 2D data. > > I think it would also be nice if it could embed the contour levels in > the plot lines (I recall that there were plotting packages from the > mid-eighties (or even before) that could do this). Maybe gnuplot has > this feature now? I haven't checked. > > jwe > > ------=_Part_828_10229840.1110051007909 Content-Type: application/zip; name="contour.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="contour.zip" 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 ------=_Part_828_10229840.1110051007909--