import numpy as np
from mpl_toolkits.mplot3d.art3d import Poly3DCollection, Line3DCollection
import mpl_toolkits.mplot3d.art3d as art3d
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
from scipy.spatial.transform import Rotation

def m_sphere(ax,r=1,z_arg=2*np.pi,x_arg=2*np.pi,color="blue",alpha=0.5):
    xx_arg = np.linspace(0, x_arg, 100) 
    zz_arg = np.linspace(0, z_arg, 100) 

    xx, zz = np.meshgrid(xx_arg, zz_arg)
    x = np.cos(xx) * np.sin(zz) * r
    y = np.sin(xx)*np.sin(zz) * r
    z = np.cos(zz) * r

    ax.plot_surface(x,y,z, color='blue',alpha=0.8)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

alpha = np.pi/2-np.arcsin(1/np.sqrt(3))

r= np.sqrt(3)

m_sphere(ax,r,z_arg=alpha)

ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
ax.set_xlim(-2,2)
ax.set_ylim(2,-2)
ax.set_zlim(-2,2)

plt.show()