四维变量随机采样,可视化采样结果。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
size = np.linspace(1, 2, 100, True)
hor = np.linspace(-1, 1, 100, True)
vec = np.linspace(0.2, 0.6, 40, True)
scale = np.linspace(0.5, 1, 50, True)
value = [size, hor, vec, scale]
result = [np.random.choice(_, 3000) for _ in value]
result.append(np.zeros(3000))
result = np.stack(result, axis=0)
result = np.round(result, 2)
result = pd.DataFrame(result.T, columns=['size', 'hor', 'vec', 'scale', 'aux'])
fig = plt.figure()
ax = Axes3D(fig)
x, y, z, w = result['size'], result['hor'], result['scale'], result['vec']
s = ax.scatter(x, y, z, c=w)
plt.colorbar(s)
fig.savefig('scatter.png')
# result.to_csv('result.csv')