george1108 发表于 2021-7-9 15:56:02

如何将一个矩阵,做成3D图

本帖最后由 george1108 于 2021-7-9 15:59 编辑

求诸位大佬:
例如:
[






]

上面的矩阵,想做成离散点的3D图。
x--列坐标,y--行坐标, z--对应矩阵值
(x, y, z)
(0, 0, 0)
(2, 7, 5)
(7, 5, 2)

x,y 我可以用linspace(),z的值该如何写?

学渣李某人 发表于 2021-7-10 15:57:43

试试这个代码:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = fig.gca(projection='3d')

count = 100
range_ = 100

data = [,
      ,
      ,
      ,
      ,
      ,
      ,
      ]

x, y, z = [], [], []

for row in range(len(data)):
    for column in range(len(data)):
      x.append(row)
      y.append(column)
      z.append(data)

ax.scatter(x, y, z, s=z, c=z)

ax.set_xlabel('Row')
ax.set_ylabel('Col')
ax.set_zlabel('Value')

plt.show()

原贴: https://paul.pub/matplotlib-3d-plotting/

学渣李某人 发表于 2021-7-10 17:42:36

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = fig.gca(projection='3d')

count = 100
range_ = 100

data = [,
      ,
      ,
      ,
      ,
      ,
      ,
      ]

x, y, z = [], [], []

for row in range(len(data)):
    for column in range(len(data)):
      x.append(row)
      y.append(column)
      z.append(data)

ax.scatter(x, y, z, s=z, c=z)

ax.set_xlabel('Row')
ax.set_ylabel('Col')
ax.set_zlabel('Value')

plt.show()

george1108 发表于 2021-7-10 18:28:08

学渣李某人 发表于 2021-7-10 17:42


非常感谢大神回复!
测试了,就是我想要的!
再次感谢!

george1108 发表于 2021-7-10 19:27:51

本帖最后由 george1108 于 2021-7-13 20:50 编辑

和大家分享一下运行的3D图。这好像是个立体分形
http://tiebapic.baidu.com/forum/w%3D580%3B/sign=1be5fbddc609b3deebbfe460fc846d81/c2cec3fdfc0392459b23bdba9094a4c27c1e25f4.jpg
http://tiebapic.baidu.com/forum/w%3D580%3B/sign=dcf3b88ca4de9c82a665f9875cba810a/c2fdfc039245d6889a94ee11b3c27d1ed31b24f4.jpg
http://tiebapic.baidu.com/forum/w%3D580%3B/sign=e375f507c658ccbf1bbcb53229e3bd3e/9345d688d43f8794f469149bc51b0ef41ad53af4.jpg
页: [1]
查看完整版本: 如何将一个矩阵,做成3D图