我想为老板准备一些统计数据。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()
结果:
1条答案
按热度按时间kq0g1dla1#
条形图的粗细由
ax.bar3d
中的dx, dy
参数设置,其值为0.5, 0.001
。问题是,我相信你注意到了,改变dy
将改变条形图的长度(在你的例子中是无标题轴),但是matplotlib帮助你重新调整了y轴的大小,这样数据就可以填满它。这让它看起来很奇怪(我假设这是问题所在,如果不是,很抱歉)。要解决这个问题,您可以使用
ax.set_ylim(0, 0.002)
设置y限制(基本上您的y值从0->0.001)。如果您更改dy
或bar3d
的y值(当前为0),则需要相应地更新限制。示例: