In [1]:
%matplotlib inline
from math import *
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
In [56]:
from numpy import linspace,pi,cos,sin
phi = np.linspace(0,2*pi,100)
x = sin(phi)+2*sin(2*phi)
y = cos(phi)-2*cos(2*phi)
z = -sin(3*phi)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x,y,z, c=x,edgecolor='w')
ax.scatter(x/1.3, y/1.2, z/1.3, c=x, edgecolor='w', cmap=plt.cm.gist_rainbow_r)
#scatter(x/1.8,y/1.5,c=x,s=s,edgecolor='w',cmap=cm.gist_rainbow)
plt.show()
In [61]:
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
for t in range(1000000):
phi = np.random.uniform(low=0, high=2*pi)
x = np.random.uniform(low=-3, high=3)
y = np.random.uniform(low=-3, high=3)
z = np.random.uniform(low=-1.5, high=1.5)
margin=1.2
if sin(phi)+2*sin(2*phi)/margin < x < sin(phi)+2*sin(2*phi)*margin:
if cos(phi)-2*cos(2*phi)/margin < y < cos(phi)-2*cos(2*phi)*margin:
if -sin(3*phi)/margin < z < -sin(3*phi)*margin:
#print z
ax.scatter(x,y,z, c=sin(phi)+2*sin(2*phi), cmap=plt.cm.gist_rainbow)
plt.show()
In [ ]: