用python绘制二进制三维矩阵

2024-04-23 18:32:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在一个三维绘图中表示一个二进制的三维矩阵(如果可能的话不要用玛雅维.mlab). 在矩阵有1的每个位置(x,y,z),都应该画出一个点。 我的矩阵是按以下方式构建的:

import numpy as np
size = 21
my_matrix = np.zeros(shape = (size, size, size))
random_location_1 = (1,1,2)
random_location_2 = (3,5,8)
my_matrix[random_location_1] = 1
my_matrix[random_location_2] = 1

现在在坐标(1,1,2)和(3,5,8)处,一个点应该是可见的,其他地方都是空白。 有没有办法做到这一点(例如使用matplotlib?)在


Tags: importnumpy绘图sizemyasnp方式
1条回答
网友
1楼 · 发布于 2024-04-23 18:32:04

听起来你需要一个散点图。看看thismplot3d教程。对我来说这很有效:

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


fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

size = 21
m = np.zeros(shape = (size, size, size))
random_location_1 = (1,1,2)
random_location_2 = (3,5,8)
m[random_location_1] = 1
m[random_location_2] = 1

pos = np.where(m==1)
ax.scatter(pos[0], pos[1], pos[2], c='black')
plt.show()

相关问题 更多 >