summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuben Erlenstedt <rxy626@gmail.com>2019-11-30 10:35:17 +0100
committerRuben Erlenstedt <rxy626@gmail.com>2019-11-30 10:35:17 +0100
commitdbee16a463ba97634c2c41d6e530185b0ec82e78 (patch)
tree368dbb1725f20b340f01dad67181c4428e2f983d
parentf0662ea546cbbfde2a4bf369bd1d856ef39f5319 (diff)
Add 3d plot function in a seperate py file
-rw-r--r--plotting.py38
-rw-r--r--single_dequantify.py2
2 files changed, 40 insertions, 0 deletions
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])