Cómo hacer un gráfico en 4d usando Python con matplotlib

Estoy buscando una forma de crear gráficos de cuatro dimensiones (superficie más una escala de colores) utilizando Python y matplotlib. Puedo generar la superficie utilizando las tres primeras variables, pero no estoy teniendo éxito al agregar la escala de color para la cuarta variable. Aquí hay un pequeño subconjunto de mis datos a continuación. Cualquier ayuda sería muy apreciada. Gracias

Subconjunto de datos

var1 var2 var3 var4 10.39 73.32 2.02 28.26 11.13 68.71 1.86 27.83 12.71 74.27 1.89 28.26 11.46 91.06 1.63 28.26 11.72 85.38 1.51 28.26 13.39 78.68 1.89 28.26 13.02 68.02 2.01 28.26 12.08 64.37 2.18 28.26 11.58 60.71 2.28 28.26 8.94 65.67 1.92 27.04 11.61 59.57 2.32 27.52 19.06 74.49 1.69 63.35 17.52 73.62 1.73 63.51 19.52 71.52 1.79 63.51 18.76 67.55 1.86 63.51 19.84 53.34 2.3 63.51 20.19 59.82 1.97 63.51 17.43 57.89 2.05 63.38 17.9 59.95 1.89 63.51 18.97 57.84 2 63.51 19.22 57.74 2.05 63.51 17.55 55.66 1.99 63.51 19.22 101.31 6.76 94.29 19.41 99.47 6.07 94.15 18.99 94.01 7.32 94.08 19.88 103.57 6.98 94.58 19.08 95.38 5.66 94.14 20.36 100.43 6.13 94.47 20.13 98.78 7.37 94.47 20.36 89.36 8.79 94.71 20.96 84.48 8.33 94.01 21.02 83.97 6.78 94.72 19.6 95.64 6.56 94.57 

Related of "Cómo hacer un gráfico en 4d usando Python con matplotlib"

Para crear la ttwig que desea, necesitamos usar plot_surface de plot_surface para trazar Z vs (X,Y) superficie, y luego usar los argumentos de palabras clave para pasar un nuevo color para cada parche.

 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from matplotlib import cm # create some fake data x = y = np.arange(-4.0, 4.0, 0.02) # here are the x,y and respective z values X, Y = np.meshgrid(x, y) Z = np.sinc(np.sqrt(X*X+Y*Y)) # this is the value to use for the color V = np.sin(Y) # create the figure, add a 3d axis, set the viewing angle fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.view_init(45,60) # here we create the surface plot, but pass V through a colormap # to create a different color for each patch ax.plot_surface(X, Y, Z, facecolors=cm.Oranges(V)) 

introduzca la descripción de la imagen aquí