python - “Axes3DSubplot”对象没有属性“体素”
问题描述
我正在尝试使用 matplotlib 来显示一些 3d perlin 噪声。我已经读过voxels
from 的方法Axes3DSubplot
可以用来简单地显示值。但是,当我尝试调用时ax.voxels(voxels, facecolors=colors, edgecolor='k')
,它会抛出异常AttributeError: 'Axes3DSubplot' object has no attribute 'voxels'
。这是我的代码:
import noise
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
x, y, z = np.indices((8,8,8))
voxels = np.zeros((8,8,8), dtype=np.bool)
for xp in range(8):
for yp in range(8):
for zp in range(8):
voxels[xp,yp,zp] = True if abs(noise.pnoise3(xp/8,yp/8,zp/8)) > 0.5 else False
colors = np.empty(voxels.shape, dtype=object)
colors[voxels] = 'green'
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.voxels(voxels, facecolors=colors, edgecolor='k') #EXCEPTION
plt.show()
我的 python 版本是 3.6.2(Anaconda 64 位)。我的 matplotlib 版本是 2.0.2。我使用了 ipynb ( module://backend_interagg
) 和Qt5Agg
后端,它们都给出了同样的问题。我正在运行 Windows 10。
解决方案
该voxels
方法已在 matplotlib 2.1 中引入。
任何早期版本的 matplotlib 都没有此方法可用。
推荐阅读
- android - 向上滚动android时自动隐藏或显示工具栏
- gtk - gtk_window_is_active() 没有按预期工作
- python - 无法使用 Cartopy 绘制散点图,这在底图中很好地显示
- sql - BigQuery 外部联接
- django - Django:奇怪的行为:每当传递一个 datetime 对象时,它就会被存储为元组。并非总是发生
- swift - 在 NSMutableArray 中搜索
- asp.net-core - 如何在 ASP.Net 核心集成测试中控制日志级别
- xgboost - 如何在 jupyter 中隐藏来自 xgboost 库的警告?
- django - Django 管理员在添加表单中预编译当前登录用户的字段
- c++ - 如何破坏单例实例,或者为什么下面的代码适用于析构函数?