簡體   English   中英

如何使用matplotlib將3d矩陣映射到三維散點圖中的顏色值?

[英]How do you map a 3d matrix to color values in a 3d scatter plot using matplotlib?

我有一個10x10x10 numpy矩陣,我試圖在3d中可視化:

from mpl_toolkits.mplot3d import Axes3D
M = np.random.rand(10, 10, 10)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
counter = range(10)
ax.scatter(counter, counter, counter, c=??)

我想要一個3d圖,其中位置i,j,k的黑暗由M[i,j,k] 我怎么想把M傳遞給scatter()以便正確地做到這一點? 它似乎想要一個二維數組,但我不明白在這種情況下它會如何工作。

散射需要與顏色數組c相同的點數。 因此,對於1000種顏色,您需要1000點。

import matplotlib.pyplot as plt
import numpy as np

from mpl_toolkits.mplot3d import Axes3D
M = np.random.rand(10, 10, 10)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
counter = range(10)
x,y,z = np.meshgrid(counter, counter, counter)
ax.scatter(x,y,z, c=M.flat)


plt.show()

在此輸入圖像描述

嘗試:

scatter3D(xs, ys, zs=0, zdir='z', s=20, c=None, depthshade=True, *args, **kwargs)

但是c!=沒有

https://matplotlib.org/mpl_toolkits/mplot3d/api.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM