【发布时间】:2018-09-19 09:03:11
【问题描述】:
考虑使用自定义网格线的 3D 条形图:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
from matplotlib.ticker import MultipleLocator
# This import registers the 3D projection, but is otherwise unused.
from mpl_toolkits.mplot3d import Axes3D # noqa: F401 unused import
fig = plt.figure(figsize=(20, 10))
ax = fig.add_subplot(111, projection='3d')
ax.xaxis.set_major_locator(MultipleLocator(1))
ax.yaxis.set_major_locator(MultipleLocator(1))
ax.zaxis.set_major_locator(MultipleLocator(2))
nx = 10
ny = 10
colors = cm.tab20(np.linspace(0, 1, nx))
width = depth = 0.1
for x in np.arange(nx):
for y in np.arange(ny):
ax.bar3d(x, y, 0, width, depth, x+y, shade=False, color = colors[x], edgecolor = 'black')
plt.show()
如何放置条形图,使条形图位于 xy 平面中网格线相互交叉的中心?
我正在考虑类似的事情
ax.bar3d(x+0.5*depth, y+0.5*width, ...)
只是我不清楚 matplotlib 使用什么偏移量。它应该适用于所有 depth 和 width 值。
对于 2D 条形图,有一个参数 align = 'center',但它似乎不适用于 3D。
【问题讨论】:
标签: python matplotlib 3d bar-chart