Browse Source

added 3D projection

epsylon 4 years ago
parent
commit
c3665789b8
1 changed files with 15 additions and 7 deletions
  1. 15 7
      goldbach/main.py

+ 15 - 7
goldbach/main.py

@@ -9,6 +9,7 @@ Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 """
 import os, sys
 import matplotlib.pyplot as plt
+from mpl_toolkits.mplot3d import Axes3D
 
 plt.rcParams.update({'figure.max_open_warning': 0})
 
@@ -74,14 +75,20 @@ class Goldbach(object):
             print('     - Tree =', self.tree)
         plt.figure()
         fig = plt.figure(1)
-        ax = fig.add_subplot(111, facecolor='black')
+        ax = plt.gca(projection="3d")
+        xs = []
+        ys = []
+        zs = []
         for t in self.tree:
-            x = t.rsplit('=',1)[1]
-            x = x.rsplit('+',1)[0] 
-            y = t.rsplit('+',1)[1] 
-            ax.scatter(self.tree.index(t)+1, x, color="red", s=2)
-            ax.scatter(self.tree.index(t)+1, y, color="green", s=2)
-        plt.clf() # removing matplot future warning
+            z = float(t.rsplit('=',1)[0])
+            l = t.rsplit("+",2)[0]
+            x = float(l.rsplit("=",1)[1])
+            y = float(t.rsplit('+',1)[1])
+            xs.append(x)
+            ys.append(y)
+            zs.append(z)
+        ax.scatter(xs,ys,zs, c='red',s=100)
+        ax.plot(xs,ys,zs, color='green')
         header = '"Tree" for number '+str(self.root)
         plt.title(header)
         plt.ylabel('Number(s)')
@@ -102,6 +109,7 @@ class Goldbach(object):
             if not self.mode == "l" or self.mode == "L" or self.mode == "Learn" or self.mode == "learn":
                 print("\n[Info] You have this 'tree' secuence previously saved...\n")
         ax.clear()
+        plt.clf()
         print(75*"=", "\n")
 
     def generate_forest(self, rng):