matlibplot作三维图以及坐标的调整

以下代码可以画多个波峰的正态分布3D图:
 

​​​​​​​import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import matplotlib as mpl

num = 200
l = np.linspace(-15, 15, num)
X, Y = np.meshgrid(l, l)
pos = np.concatenate((np.expand_dims(X, axis=2), np.expand_dims(Y, axis=2)), axis=2)

u1 = np.array([-6, -6])
o1 = 3 * np.array([[1, 0],
                   [0, 1]])
a1 = (pos - u1).dot(np.linalg.inv(o1))
b1 = np.expand_dims(pos - u1, axis=3)
Z1 = np.zeros((num, num), dtype=np.float32)

u2 = np.array([-1, -1])
o2 = 3 * np.array([[1, 0],
                   [0, 1]])
a2 = (pos - u2).dot(np.linalg.inv(o2))
b2 = np.expand_dims(pos - u2, axis=3)
Z2 = np.zeros((num, num), dtype=np.float32)

u3 = np.array([6,6])
o3 = 3 * np.array([[1, 0],
                   [0, 1]])
a3 = (pos - u3).dot(np.linalg.inv(o3))
b3 = np.expand_dims(pos - u3, axis=3)
Z3 = np.zeros((num, num), dtype=np.float32)

u4 = np.array([10,10])
o4 = 3 * np.array([[1, 0],
                   [0, 1]])
a4 = (pos - u4).dot(np.linalg.inv(o4))
b4 = np.expand_dims(pos - u4, axis=3)
Z4 = np.zeros((num, num), dtype=np.float32)

for i in range(num):
    Z1[i] = [np.dot(a1[i, j], b1[i, j]) for j in range(num)]
    Z2[i] = [np.dot(a2[i, j], b2[i, j]) for j in range(num)]
    Z3[i] = [np.dot(a3[i, j], b3[i, j]) f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值