From dbee16a463ba97634c2c41d6e530185b0ec82e78 Mon Sep 17 00:00:00 2001 From: Ruben Erlenstedt Date: Sat, 30 Nov 2019 10:35:17 +0100 Subject: Add 3d plot function in a seperate py file --- plotting.py | 38 ++++++++++++++++++++++++++++++++++++++ single_dequantify.py | 2 ++ 2 files changed, 40 insertions(+) create mode 100644 plotting.py diff --git a/plotting.py b/plotting.py new file mode 100644 index 0000000..397e4de --- /dev/null +++ b/plotting.py @@ -0,0 +1,38 @@ +import math as mth +import cmath as cmt +import numpy as npy +from mpl_toolkits.mplot3d import Axes3D +import matplotlib.pyplot as plt +import numpy as np +from itertools import product, combinations +from matplotlib.patches import FancyArrowPatch +from mpl_toolkits.mplot3d import proj3d + +class Arrow3D(FancyArrowPatch): + + def __init__(self, xs, ys, zs, *args, **kwargs): + FancyArrowPatch.__init__(self, (0, 0), (0, 0), *args, **kwargs) + self._verts3d = xs, ys, zs + + def draw(self, renderer): + xs3d, ys3d, zs3d = self._verts3d + xs, ys, zs = proj3d.proj_transform(xs3d, ys3d, zs3d, renderer.M) + self.set_positions((xs[0], ys[0]), (xs[1], ys[1])) + FancyArrowPatch.draw(self, renderer) + +def plot_kugel(historie): + fig = plt.figure() + ax = fig.gca(projection='3d') + + # draw sphere + u, v = np.mgrid[0:2*np.pi:20j, 0:np.pi:10j] + x = np.cos(u)*np.sin(v) + y = np.sin(u)*np.sin(v) + z = np.cos(v) + ax.plot_wireframe(x, y, z, color="r") + + # draw a vector + a = Arrow3D([0, 1], [0, 1], [0, 1], mutation_scale=20, + lw=1, arrowstyle="-|>", color="k") + ax.add_artist(a) + plt.show() \ No newline at end of file diff --git a/single_dequantify.py b/single_dequantify.py index 2a5e2bc..c7f6ade 100644 --- a/single_dequantify.py +++ b/single_dequantify.py @@ -31,9 +31,11 @@ def sphere2cart(phi, theta): mth.cos(theta) ] +historie = npy.array([bloch_map(state)]) for i in range(iterations): state = time_evolution(state) h = npy.dot(state, state) + historie = npy.vstack([historie,bloch_map(state)]) #print(f"{bloch_map(state)[0]}; {bloch_map(state)[1]}") coords = bloch_map(state) coords = sphere2cart(coords[0], coords[1]) -- cgit v1.2.3-54-g00ecf