Matplotlib:如何在酒吧之间获得空间?

时间:2014-09-11 17:34:23

标签: python matplotlib

您好我已经开始使用matplotlib并且一直在尝试调整网站上的示例代码以满足我的需求。我有下面的代码,我想要的除了每组中的第3个栏与第一组下一个栏重叠。互联网不足以添加图片,但任何帮助都会很棒,如果你能解释我的错误是什么,那将是值得赞赏的。

谢谢, 汤姆

"""
Bar chart demo with pairs of bars grouped for easy comparison.
"""
import numpy as np
import matplotlib.pyplot as plt


n_groups = 3

means_e1 = (20, 35, 30)
std_e1 = (2, 3, 4)

means_e2 = (25, 32, 34)
std_e2 = (3, 5, 2)

means_e3 = (5, 2, 4)
std_e3 = (0.3, 0.5, 0.2)

fig, ax = plt.subplots()

index = np.arange(n_groups)
bar_width = 0.35

opacity = 0.4
error_config = {'ecolor': '0.3'}

rects1 = plt.bar(index , means_e1, bar_width,
                 alpha=opacity,
                 color='b',
                 yerr=std_e1,
                 error_kw=error_config,
                 label='Main')

rects2 = plt.bar(index + bar_width + 0.1, means_e2, bar_width,
                 alpha=opacity,
                 color='r',
                 yerr=std_e2,
                 error_kw=error_config,
                 label='e2')

rects3 = plt.bar(index + bar_width + bar_width + 0.2, means_e3, bar_width,
                 alpha=opacity,
                 color='g',
                 yerr=std_e3,
                 error_kw=error_config,
                 label='e3')

plt.xlabel('Dataset type used')
plt.ylabel('Percentage of reads joined after normalisation to 1 million reads')
plt.title('Application of Thimble on datasets, showing the ability of each stitcher option.')
plt.xticks(index + bar_width + bar_width, ('1', '2', '3'))
plt.legend()

plt.tight_layout()
plt.show()

1 个答案:

答案 0 :(得分:9)

bar_width + bar_width + 0.20.9。现在,您添加了另一个bar_width0.35)栏,因此总体而言1.25大于1。由于1是索引后续点之间的距离,因此您有重叠。

您可以增加索引(index = np.arange(0, n_groups * 2, 2))之间的距离,或者将条形宽度缩小到更小的值,例如0.2