aboutsummaryrefslogtreecommitdiffstats
path: root/buch/papers/zeta/python/plot_zeta.py
blob: 53097c5cdc95c8d81f274575d22432b55ef4b691 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import numpy as np
from mpmath import zeta
import matplotlib.pyplot as plt
from matplotlib import colors
import matplotlib
matplotlib.use("pgf")
matplotlib.rcParams.update(
    {
        "pgf.texsystem": "pdflatex",
        "font.family": "serif",
        "font.size": 8,
        "text.usetex": True,
        "pgf.rcfonts": False,
        "axes.unicode_minus": False,
    }
)

print(zeta(-1))
print(zeta(-1 + 2j))

re_values = np.arange(-10, 5, 0.04)
im_values = np.arange(-20, 20, 0.04)
plot_matrix = np.zeros((len(im_values), len(re_values), 3))
for im_i, im in enumerate(im_values):
    print(im_i)
    for re_i, re in enumerate(re_values):
        z = complex(zeta(re + 1j*im))
        h = (np.angle(z) + np.pi) / (2*np.pi)
        v = np.abs(z)
        s = 1.0
        plot_matrix[im_i, re_i] = [h, s, v]

log10_v = np.log10(plot_matrix[:, :, 2])
log10_v += np.abs(np.min(log10_v))
plot_matrix[:, :, 2] = (log10_v) / np.max(log10_v)
plt.imshow(colors.hsv_to_rgb(plot_matrix), extent=[re_values.min(), re_values.max(), im_values.min(), im_values.max()])
plt.xlabel("$\Re$")
plt.ylabel("$\Im$")
plt.savefig(f"zeta_color_plot.pgf")