English: The file was generated via the following code, which was adapted from Wikipedia Logistic map article:
import numpy as np
import matplotlib.pyplot as plt
preset = 1
if preset == 1: # Complete diagram
saveFigure = True
markerSize = 0.001 # orig. 0.02
markerStyle = "," # . - point; , - pixel
cInterval = (-2.1, 0.26)
#cInterval = (-1.4011551890, -1.3940462)
cResolution = 0.0003
mapIterationCount = 1000 # (orig. 600)
lastMapIterationCountToPlot = 1000 # (orig. 200)
startingIterationValue = 0
fileName = "MandelbrotMapOrbitDiag.png"
elif preset == 2: # Zoom to a region near -2
saveFigure = True
markerSize = 0.001 # orig. 0.02
markerStyle = "," # . - point; , - pixel
cInterval = (-2, -1.99)
cResolution = 1E-6
mapIterationCount = 1000
lastMapIterationCountToPlot = 1000
startingIterationValue = 0
fileName = "MandelbrotMapOrbitDiag_ZoomNearM2.png"
if cInterval[0] < -2 or cInterval[1] > 0.25:
yLim = (-2.2, 2.5)
else:
yLim = (-2, 2)
lims = np.zeros(mapIterationCount)
fig, biax = plt.subplots()
fig.set_size_inches(16, 9)
lims[0] = startingIterationValue
for c in np.arange(cInterval[0], cInterval[1], cResolution):
for i in xrange(mapIterationCount - 1):
lims[i + 1] = lims[i] * lims[i] + c
if lims[i] > 2:
lims[i + 1] = lims[i] # Allow plotting of c values outside of Mandelbrot set, diverging ones
biax.plot([c] * lastMapIterationCountToPlot,
lims[(mapIterationCount - lastMapIterationCountToPlot):], "b.",
markersize=markerSize,
marker=markerStyle)
biax.set(xlabel="c", ylabel="x",
title="Mandelbrot set quadratic map for real values - bifurcation diagram/orbit diagram" + "\n" +
"c resolution: " + str(cResolution) +
", iteration count: " + str(mapIterationCount) +
", last values to plot count: " + str(lastMapIterationCountToPlot))
biax.set_ylim(yLim[0], yLim[1])
if saveFigure:
plt.savefig(fileName, dpi=600)
else:
plt.show()