There may be a more efficient way, but this simple sketch for drawing
contour plots with Winston is one way:
using Winston
using Contour
function contour_plot(x, y, z, N)
cs = contours(x,y,z,N)
p = FramedPlot()
for c in cs
level, lines = c.level, c.lines
for line in lines
xys = hcat(line.vertices...)'
add(p, Curve(xys[:,1], xys[:,2])) ## add color
end
## add label
end
p
end
On Friday, July 4, 2014 3:21:19 AM UTC-4, Oliver Lylloff wrote:
>
> I really like this new feature.
>
> I was thinking of adding a contour functionality to PGFplots (
> https://github.com/sisl/PGFPlots.jl). I think this could be done by
> writing the arrays of contour lines as coordinates in a pgfplot
> environment. How would you convert the lines Array{Curve2{Float64},1} to
> Array{Float64,2}? I guess that is also what current or future plotting
> packages would want to do?
>
> Best,
> Oliver
>
> Den torsdag den 3. juli 2014 17.19.50 UTC+2 skrev Tomas Lycken:
>>
>> The purpose of the Contour.jl package isn’t really to provide that part
>> of the functionality - but rather an abstraction over *finding* the
>> contours in the first place, that plotting packages can make use of. If you
>> only want the contours in order to plot them, it’s better to use one of the
>> plotting packages directly.
>>
>> Contour plots are already available in PyPlot (using the matplotlib api
>> <http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.contour>),
>> and at least to some extent in Gadfly
>> <https://github.com/dcjones/Gadfly.jl/issues/293>. I don’t know if or
>> how Winston or others do contour plots, but if they can, they'll probably
>> show them off in the docs =)
>>
>> // T
>>
>> On Wednesday, July 2, 2014 4:16:32 PM UTC+2, Andrei Berceanu wrote:
>>
>> Great work, congratulations for the package. I have a short question.
>>> Once I get an array of Curve2 type, how can I get a graphical
>>> representation of it? I mean, in Winston/Gaston/PyPlot/whatever.
>>>
>>> On Sunday, June 29, 2014 12:34:28 AM UTC+2, Tomas Lycken wrote:
>>>>
>>>> Huzzah!
>>>>
>>>> We’ve just released Contour.jl <https://github.com/tlycken/Contour.jl>,
>>>> a light-weight package that provides an algorithm to calculate iso-lines
>>>> of
>>>> a scalar 2D-field f(x,y), such as those shown on a contour plot. The
>>>> current implementation uses the Marching Squares
>>>> <http://en.wikipedia.org/wiki/Marching_squares> algorithm, and returns
>>>> the contour lines in an array of ContourLevel instances, that provide
>>>> an abstraction over the actual implementation of curves as geometrical
>>>> objects. Currently lists of Vector2s from ImmutableArrays are used to
>>>> represent curves, but the idea is that if e.g. a package with general
>>>> geometry items emerges, we can seemlessly switch to that.
>>>>
>>>> Our hopes is that other packages that have use for isolines (e.g. all
>>>> plotting packages that want to plot contours) use this package instead of
>>>> each carrying their own implementation, but use cases are of course not
>>>> limited to plotting. (I wanted to put this together because I needed to
>>>> calculate volumes inside axisymmetric isosurfaces, and this solved a large
>>>> part of that problem…)
>>>>
>>>> Please, kick the tires and see what you can do with this! =)
>>>>
>>>> Finally, a big thanks to Darwin Darakananda
>>>> <https://github.com/darwindarak>, who’s done almost all the coding.
>>>>
>>>> // Tomas
>>>>
>>>>
>>>
>>
>