3D散点图和投影KDE图

问题描述 投票:0回答:1

有人可以告诉我为什么此代码中的XZ投影未出现在X-Z平面上?

import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np from scipy.stats import kde # Sample data np.random.seed(42) x = np.random.randn(100) y = np.random.randn(100) z = np.random.randn(100) # Create figure and 3D axes fig = plt.figure(figsize=(10, 8)) ax = fig.add_subplot(111, projection='3d') # Scatter plot ax.scatter(x, y, z, c='b', marker='o') # KDE for projections def kde_projection(data1, data2): values = np.vstack([data1, data2]) kernel = kde.gaussian_kde(values) x_range = np.linspace(data1.min(), data1.max(), 100) y_range = np.linspace(data2.min(), data2.max(), 100) X, Y = np.meshgrid(x_range, y_range) positions = np.vstack([X.ravel(), Y.ravel()]) Z = np.reshape(kernel(positions).T, X.shape) return X, Y, Z # Projections with KDE # XY plane X_xy, Y_xy, Z_xy = kde_projection(x, y) ax.contour(X_xy, Y_xy, Z_xy, zdir='z', offset=z.min()-1, cmap='Blues') # XZ plane X_xz, Z_xz, Y_xz = kde_projection(x, z) ax.contour(X_xz, Y_xz, Z_xz, zdir='y', offset=y.min()-1, cmap='Reds') # YZ plane Y_yz, Z_yz, X_yz = kde_projection(y, z) ax.contour(X_yz, Y_yz, Z_yz, zdir='x', offset=x.min()-1, cmap='Greens') # Set labels and limits ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') ax.set_xlim(x.min() - 1, x.max() + 1) ax.set_ylim(y.min() - 1, y.max() + 1) ax.set_zlim(z.min() - 1, z.max() + 1) # Show plot plt.show()
将Yz和XY的投影删除在各自的飞机上,但XZ不想工作...我不确定我是否缺少某些东西,但我认为该模式应适用于所有三个飞机。
thanks.

x_xz,y_xz,z_xz = kde_proctive(x,z)
python matplotlib seaborn plot3d
1个回答
0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.