You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Matplotlib 3D立方体指定位置[15,9,0]的颜色?

修改3D立方体指定位置体素的颜色

嘿,这事儿不难!你已经搭好了24x24的3D立方体框架,现在要单独改[15,9,0]这个位置的体素颜色,只需要调整facecolors的设置就行——原来你用的是单一颜色值,所有体素都会统一上色,咱们改成按位置自定义颜色的数组就搞定了,具体步骤看下面:

核心思路

ax.voxels()的facecolors参数不仅支持单一颜色字符串,还支持和立方体数组同维度的颜色数组,这样就能给每个体素单独指定颜色。咱们先创建一个全是默认颜色的数组,再把目标位置的颜色替换掉就行。

修改后的完整代码

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

# 创建立方体结构:24x24x4的布尔数组(表示哪些体素显示)
cube = np.ones((24, 24, 4), dtype='bool')

# 创建和立方体同形状的颜色数组,默认填充你原来的红色#E02050
facecolors = np.full(cube.shape, "#E02050", dtype='U7')
# 把[15,9,0]位置的体素改成你想要的颜色,这里用亮黄色举例子
facecolors[15, 9, 0] = "#FFFF00"

fig = plt.figure()
ax = plt.axes(projection='3d')
ax.set_facecolor("Cyan")
# 传入自定义的颜色数组,替换原来的单一颜色
ax.voxels(cube, facecolors=facecolors, edgecolors='k')
ax.axis('off')
plt.show()

关键细节说明

  • 记得补上import numpy as np,不然你的cube数组会报错(原来的代码里漏了这行)
  • np.full()用来快速生成和cube同维度的颜色数组,保证每个体素都有初始颜色
  • 直接通过索引facecolors[15,9,0]修改目标位置,注意numpy数组是从0开始计数的,确认这个索引对应你要改的体素位置
  • 你可以把#FFFF00换成任何你喜欢的十六进制颜色码或者颜色名称(比如"green")

内容的提问来源于stack exchange,提问作者Anthony1199

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 20:29:09