diff options
Diffstat (limited to 'examples/graphstyles/density.jl')
-rw-r--r-- | examples/graphstyles/density.jl | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/examples/graphstyles/density.jl b/examples/graphstyles/density.jl new file mode 100644 index 0000000..957b487 --- /dev/null +++ b/examples/graphstyles/density.jl @@ -0,0 +1,86 @@ + +# Original Python: +# from pyx import * +# +# # Mandelbrot calculation contributed by Stephen Phillips +# +# # Mandelbrot parameters +# re_min = -2 +# re_max = 0.5 +# im_min = -1.25 +# im_max = 1.25 +# gridx = 100 +# gridy = 100 +# max_iter = 10 +# +# # Set-up +# re_step = (re_max - re_min) / gridx +# im_step = (im_max - im_min) / gridy +# d = [] +# +# # Compute fractal +# for re_index in range(gridx): +# re = re_min + re_step * (re_index + 0.5) +# for im_index in range(gridy): +# im = im_min + im_step * (im_index + 0.5) +# c = complex(re, im) +# n = 0 +# z = complex(0, 0) +# while n < max_iter and abs(z) < 2: +# z = (z * z) + c +# n += 1 +# d.append([re, im, n]) +# +# # Plot graph +# g = graph.graphxy(height=8, width=8, +# x=graph.axis.linear(min=re_min, max=re_max, title=r"$\Re(c)$"), +# y=graph.axis.linear(min=im_min, max=im_max, title=r'$\Im(c)$')) +# g.plot(graph.data.points(d, x=1, y=2, color=3, title="iterations"), +# [graph.style.density(gradient=color.rgbgradient.Rainbow)]) +# g.writeEPSfile() +# g.writePDFfile() +# g.writeSVGfile() + +using PyX +using LaTeXStrings + +# Mandelbrot parameters +re_min = -2 +re_max = 0.5 +im_min = -1.25 +im_max = 1.25 +gridx = 100 +gridy = 100 +max_iter = 10 + +# Set-up +re_step = (re_max - re_min) / gridx +im_step = (im_max - im_min) / gridy +# Julia note: indexing is opposite of what would be idiomatic Julia +d = zeros(gridx*gridy, 3) + +# Compute fractal +for re_index in 0:(gridx-1) + re = re_min + re_step * (re_index + 0.5) + for im_index in 0:(gridy-1) + im = im_min + im_step * (im_index + 0.5) + c = complex(re, im) + n = 0 + z = complex(0, 0) + while n < max_iter && abs(z) < 2 + z = (z * z) + c + n += 1 + end + d[re_index*gridy + im_index + 1, :] = [re, im, n] + end +end + +# Plot graph +g = graph.graphxy(height=8, width=8, + x=graph_axis.linear(min=re_min, max=re_max, title=L"$\Re(c)$"), + y=graph_axis.linear(min=im_min, max=im_max, title=L"$\Im(c)$")) +plot(g, graph_data.points(d, x=1, y=2, color=3, title="iterations"), + [graph_style.density(gradient=color_rgbgradient.Rainbow)]) +writeEPSfile(g, "density") +writePDFfile(g, "density") + |