Как построить многомерную функцию в Python?

построение одной переменной функции в Python довольно просто с помощью matplotlib. Но я пытаюсь добавить третью ось к диаграмме рассеяния, чтобы визуализировать мою многомерную модель.

вот пример фрагмента, с 30 выходами:

import numpy as np
np.random.seed(2)
## generate a random data set
x = np.random.randn(30, 2)
x[:, 1] = x[:, 1] * 100
y = 11*x[:,0] + 3.4*x[:,1] - 4 + np.random.randn(30) ##the model

Если бы это была только одна переменная модель, я бы, вероятно, использовал что-то вроде этого для создания графика и линии наилучшего соответствия:

%pylab inline
import matplotlib.pyplot as pl 
pl.scatter(x_train, y_train)
pl.plot(x_train, ols.predict(x_train))
pl.xlabel('x')
pl.ylabel('y')

каков эквивалент многомерной визуализации?

3 ответов


наиболее распространенным подходом является изменение цвета и / или размера символов разброса. Например:

import numpy as np
import matplotlib.pyplot as plt
np.random.seed(2)

## generate a random data set
x, y = np.random.randn(2, 30)
y *= 100
z = 11*x + 3.4*y - 4 + np.random.randn(30) ##the model

fig, ax = plt.subplots()
scat = ax.scatter(x, y, c=z, s=200, marker='o')
fig.colorbar(scat)

plt.show()

enter image description here


можно использовать mplot3d. Для точечной диаграммы, вы можете использовать что-то вроде

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(xs, ys, zs)