matplotlib 如何绘制3D图

dpiehjr4  于 2023-05-07  发布在  其他
关注(0)|答案(1)|浏览(188)

我有一个使用降维n = 2的集群数组,并使用以下代码在2D中绘制:

  1. f, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(24,6))
  2. # labels = ['No Fraud', 'Fraud']
  3. f.suptitle('Clusters using Dimensionality Reduction', fontsize=14)
  4. blue_patch = mpatches.Patch(color='#0A0AFF', label='No Fraud')
  5. red_patch = mpatches.Patch(color='#AF0000', label='Fraud')
  6. # t-SNE scatter plot
  7. ax1.scatter(X_reduced_tsne[:,0], X_reduced_tsne[:,1], c=(y == 0), cmap='coolwarm', label='No Fraud', linewidths=2)
  8. ax1.scatter(X_reduced_tsne[:,0], X_reduced_tsne[:,1], c=(y == 1), cmap='coolwarm', label='Fraud', linewidths=2)
  9. ax1.set_title('t-SNE', fontsize=14)
  10. ax1.grid(True)
  11. ax1.legend(handles=[blue_patch, red_patch])
  12. # PCA scatter plot
  13. ax2.scatter(X_reduced_pca[:,0], X_reduced_pca[:,1], c=(y == 0), cmap='coolwarm', label='No Fraud', linewidths=2)
  14. ax2.scatter(X_reduced_pca[:,0], X_reduced_pca[:,1], c=(y == 1), cmap='coolwarm', label='Fraud', linewidths=2)
  15. ax2.set_title('PCA', fontsize=14)
  16. ax2.grid(True)
  17. ax2.legend(handles=[blue_patch, red_patch])
  18. # TruncatedSVD scatter plot
  19. ax3.scatter(X_reduced_svd[:,0], X_reduced_svd[:,1], c=(y == 0), cmap='coolwarm', label='No Fraud', linewidths=2)
  20. ax3.scatter(X_reduced_svd[:,0], X_reduced_svd[:,1], c=(y == 1), cmap='coolwarm', label='Fraud', linewidths=2)
  21. ax3.set_title('Truncated SVD', fontsize=14)
  22. ax3.grid(True)
  23. ax3.legend(handles=[blue_patch, red_patch])
  24. plt.show()

This is the 2D plot
如何在3D中绘制n = 3的数据?

k5ifujac

k5ifujac1#

Matplotlib有一个非常简单的3D绘图系统:

  1. %matplotlib inline
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. fig = plt.figure()
  5. ax = plt.axes(projection='3d')

这将输出:

阅读更多:Documentation on 3D Graphing

相关问题