I'm working on a generative art generator library for python called
And if you run the code using matplotlib==3.0.3
you'll have:
Attribute Qt::AA_EnableHighDpiScaling must be set before QCoreApplication is created.
/home/user/.local/lib/python3.8/site-packages/numpy/core/_asarray.py:136: ComplexWarning: Casting complex values to real discards the imaginary part
return array(a, dtype, copy=False, order=order, subok=True)
[Edit] : I added a example which uses matplotlib
directly instead of using it through Samila. If you prefer you can use this script instead of previous one.
import random
import math
import matplotlib.pyplot as plt
import itertools
def f1(x,y):
return math.cos(x**2 * y)**1.926 - math.floor(x - y)**1.861 - math.floor(y**2 * x)**1.688
def f2(x,y):
return x - y**1.617 - math.ceil(y)**1.477 - abs(x**2 * y) ** 1.647 - math.cos(x * y)**1.668
def float_range(start, stop, step):
while start < stop:
yield float(start)
start = step
data1 = []
data2 = []
range1 = list(float_range(-1*math.pi, math.pi, 0.01))
range_prod = list(itertools.product(range1, range1))
for item in range_prod:
data1.append(f1(item[0], item[1]))
data2.append(f2(item[0], item[1]))
color = (0.159, 0.085, 0.191)
spot_size = 0.01
projection = "polar"
fig = plt.figure()
fig.set_size_inches(10, 10)
ax = fig.add_subplot(111, projection=projection)
ax.scatter(
data2,
data1,
alpha=0.1,
edgecolors=color,
s=spot_size)
ax.set_axis_off()
ax.patch.set_zorder(-1)
ax.add_artist(ax.patch)
plt.show()
System Details:
- OS: Linux - Ubuntu 20.04
- Python: Python 3.8.10
- GCC: [GCC 9.3.0]
- Matplotlib: [3.0.3, 3.4.3]
- Numpy: 1.19.1
CodePudding user response:
The problem was that matplotlib changes its plotting strategy from 3.0.3
which ignores points with negative radius to 3.4.3
in which they're plotted.
while in matplotlib.__version__ == 3.4.3
: