我想为老板准备一些统计数据。 matplotlib条形图的平面样式会使它们对于那些习惯于Excel图表的人来说看起来很便宜,但为了清楚起见,可能应该避免使用这样的样式。
我不是那么远,但我不知道如何给出正确的酒吧厚度:
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
row = [0, 0, 0, 22, 0, 0, 4, 16, 2, 0, 4, 4, 12, 26]
length = len(row)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = np.arange(length)
y = np.zeros(14)
z = np.array(row)
width = 0.8
ax.bar3d(x, y, [0]*length, 0.5, 0.001, z)
ax.set_xticks(x + width/2)
ax.set_xticklabels(titles[2:], rotation=90)
ax.set_yticks(y)
ax.set_zlabel('count')
plt.show()
结果:
答案 0 :(得分:4)
条形图的厚度由dx, dy
中ax.bar3d
个参数设置,其0.5, 0.001
值为dy
。问题,我确定你注意到,更改ax.set_ylim(0, 0.002)
将改变条的长度(在你的情况下是无标题轴),但matplotlib有助于重新调整y轴,以便数据填充它。这使它看起来很奇怪(我假设这是问题,对不起,如果不是)。
要解决此问题,您可以使用dy
设置y限制(基本上您的y值从0-> 0.001)。如果您更改bar3d
或当前为0的from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
row = [0, 0, 0, 22, 0, 0, 4, 16, 2, 0, 4, 4, 12, 26]
length = len(row)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.bar3d(range(length), [0]*length, [0]*length, 0.5, 0.001, row)
ax.set_ylim(-0.005, 0.005)
plt.show()
的y值,则需要相应地更新限制。
示例:
{{1}}