aboutsummaryrefslogtreecommitdiffstats
path: root/examples/graphstyles/density.jl
diff options
context:
space:
mode:
Diffstat (limited to 'examples/graphstyles/density.jl')
-rw-r--r--examples/graphstyles/density.jl86
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")
+