Объект 'Axes3DSubplot' не имеет атрибута 'voxels' - PullRequest
0 голосов
/ 01 июня 2018

Я пытаюсь использовать matplotlib для отображения шума 3d-перлина.Я читал, что метод voxels из 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-bit).Моя версия matplotlib - 2.0.2.Я использовал как ipynb (module://backend_interagg), так и Qt5Agg backends, которые дают одну и ту же проблему.Я использую Windows 10.

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

В * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

* *.
0 голосов
/ 01 июня 2018

у меня работает, python 3.6.4, anaconda 5.1.0 и matplotlib 2.2.2 в pycharm.

это показывает это: your code shows this

...