我已经生成柱状图看起来像这样的靠不住之间的间距:matplotlib BARH产生酒吧
注意标签上的垂直间距不均匀出于某种原因;我不确定这是否与我已经分配了滴答或任何实际放置文本的机制有关。相关代码:
height_factor = 40.0
ind = np.linspace(0,len(sorted_totals)*height_factor,num=len(sorted_totals))
width = 0.25
fig = plt.figure(figsize=(15.5, 8.75),dpi=300)
p1 = plt.barh(ind,map(int,sorted_composite[:,0]),color='blue',align='center',height=height_factor)
p1 = plt.barh(ind,map(int,sorted_composite[:,2]),color=(0.75,0.1,0.1),align='center',height=height_factor)
plt.ylabel('# of Picks (blue) + # of Bans (red)')
plt.yticks(ind, sorted_totals[:,0])
plt.subplots_adjust(bottom=0.05, left=0.14,right=0.95,top=0.95)
plt.ylim([ind.min() - height_factor, ind.max() + height_factor])
我的数据存储在sorted_composite和IND是我用来放置棒(的ytick位置)的值。我正在使用linspace生成均匀间隔的小节,这是唯一的作品,我不确定原因。
我在想,您的问题可能与具有所有这些酒吧而临时抱佛脚,但我一直在试图从你的代码5到〜50条,这里没有问题。 – 2012-01-03 04:22:01
是的,我有一种感觉这是一个像素放置四舍五入问题..即如果你有一个8像素高的图像,并且想要通过中心绘制一条线,你是否沿着像素行4或像素行5绘制;无论哪种方式很糟糕 – user1127062 2012-01-03 07:34:43
在一个侧面说明我报复一个平凡的测试用例不好的结果: '从numpy的进口*' 从pylab进口* 数据=零(50)+10 IND =人气指数(10) barh(ind,data) show()' 看起来很糟糕 – user1127062 2012-01-03 07:38:15