Я, конечно, понимаю вашу причину, по которой вам нужен 3D-бар.Я подозреваю, что именно поэтому они были созданы.
Библиотеки («наборы инструментов») в Matplotlib, необходимые для создания 3D-графиков, , а не сторонние библиотеки и т. Д., Скорее они включены в базовую установку Matplotlib .(Это верно для текущей стабильной версии, которая является 1.0, хотя я не верю, что это было для 0.98, поэтому изменение - от «надстройки» до части базовой установки - произошло в течение прошлого года,я верю)
Итак, вот вы:
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as PLT
import numpy as NP
fig = PLT.figure()
ax1 = fig.add_subplot(111, projection='3d')
xpos = NP.random.randint(1, 10, 10)
ypos = NP.random.randint(1, 10, 10)
num_elements = 10
zpos = NP.zeros(num_elements)
dx = NP.ones(10)
dy = NP.ones(10)
dz = NP.random.randint(1, 5, 10)
ax1.bar3d(xpos, ypos, zpos, dx, dy, dz, color='#8E4585')
PLT.show()
Чтобы создать 3d бары в Maplotlib, вам просто нужно сделать три (дополнительные) вещи:
import Axes3D из mpl_toolkits.mplot3d
, вызов метода bar3d (в моем скриптлете он вызывается ax1 экземпляром класса Axes).Подпись метода:
bar3d (x, y, z, dy, dz, color = 'b', zsort = "средний", * args, ** kwargs)
передать дополнительный аргумент add_subplot, projection = '3d'