Как добавить контурный график Dynami c - PullRequest
1 голос
/ 10 июля 2020

Я написал код в juypter для визуализации двумерного нормального распределения. Я хочу изменить код, чтобы одновременно визуализировать контурный график (изоплотность, скажем, поверхность xy). Что добавить?

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib as mpl
%matplotlib
if __name__ == '__main__':
    mpl.rcParams['font.sans-serif'] = ['SimHei']
    mpl.rcParams['axes.unicode_minus'] = False

    d = np.random.randn(10000000, 2)
    N = 30
    density, edges = np.histogramdd(d, bins=[30, 30])
    print("样本总数: ", np.sum(density))
    density = density/density.max()
    x = y = np.arange(N)
    t = np.meshgrid(x,y)
    fig = plt.figure()
    ax = Axes3D(fig)
    ax.scatter(t[0], t[1], density, c='r', s=15*density, marker='o', depthshade=True)
    ax.plot_surface(t[0], t[1], density, cmap='rainbow', rstride=1, cstride=1, alpha=0.9, lw=1)
    cset = ax.contourf(x, y, density, 
                   zdir ='z', 
                   offset = np.min(density), 
                   ) 
    ax.set_xlabel("x轴")
    ax.set_ylabel("y轴")
    ax.set_zlabel("z轴")
    plt.title("二元高斯分布")
#     plt.tight_layout(0.1)
    plt.show()
...