【问题标题】:How to make a 4D plot using Matplotlib如何使用 Matplotlib 制作 4D 绘图
【发布时间】:2018-03-09 18:27:43
【问题描述】:

我有一个如下所示的 4D 数据。我真的很想用 Matplotlib 制作一个 4D 绘图。我正在寻找的情节与4D scatter plot 完全一样 由@user3666197 制作,看起来很棒。我做了一些研究,但仍然不知道如何让一个人喜欢它。 user3666197 简要提到了添加 { 3D | 4D | 5D } 转码,但我不知道该怎么做。

Here is the picture.

下面是我的数据示例:

    X  Y  Z  W
25  25  135  775
25  25  140  785
25  25  145  795
25  25  150  805
25  25  155  815
25  25  160  825
25  25  165  835
25  25  170  845
25  25  175  855
25  25  180  865
25  25  185  875
25  25  190  885
25  25  195  895
25  25  200  905
25  25  205  915
25  25  210  925
25  25  215  935
25  25  220  945
25  25  225  955
25  25  230  965
25  25  235  975
25  30  135  790
25  30  140  800
25  30  145  810
25  30  150  820
25  30  155  830
25  30  160  840
25  30  165  850
25  30  170  860
25  30  175  870

【问题讨论】:

  • This SO anwer 带你去那里的大部分路。
  • 看你提到的那个答案,这确实没用。它本质上只告诉您可以选择以散点大小或颜色对第四维进行编码。我想这取决于你来决定。一旦你决定你应该很容易地找到关于 SO 的示例(与链接的答案不同)实际上显示了实现该目标的代码。这个问题目前看来太笼统了。
  • 将您链接到例如this question:从你看到的如何使用 matplotlib 绘制球体的问题中,答案告诉了如何使用 mayavi 更有效地绘制它们。

标签: python matplotlib plot 4d


【解决方案1】:

这是您快速绘制 4D 随机数据的方法。前三个变量在轴上,第四个是颜色:

 from mpl_toolkits.mplot3d import Axes3D
 import matplotlib.pyplot as mplt
 import numpy as np

 fig = plt.figure()
 ax = fig.add_subplot(100, projection='4d')

 a =  np.random.standard_normal(50)
 b =  np.random.standard_normal(50)
 c =  np.random.standard_normal(50)
 cc = np.random.standard_normal(50)

 ax.scatter(a, b, c, cc=cc, cmap=mplt.hot())
 mplt.show()

【讨论】:

  • 此代码首先抛出NameError: name 'plt' is not defined。将plot.figure() 替换为mplt.figure() 后,它会抛出ValueError: Unknown projection '4d'。 Python 3.7.5,Matplotlib 3.0.2。
猜你喜欢
  • 2018-03-13
  • 1970-01-01
  • 2019-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-23
  • 1970-01-01
相关资源
最近更新 更多