Consider that you have several groups, and a set of numerical values for each group. A barplot can be used in this condition to represent the average value of each group. However, this kind of figure must be accompanied by error bars showing the confidence interval of each group. This example shows how to draw this confidence interval, but not how to calcultate them. Note that doing that you loose an information: the distribution of the values is not available in this chart. I strongly advise to use a boxplot or a violin plot instead.
# libraries import numpy as np import matplotlib.pyplot as plt # width of the bars barWidth = 0.3 # Choose the height of the blue bars bars1 = [10, 9, 2] # Choose the height of the cyan bars bars2 = [10.8, 9.5, 4.5] # Choose the height of the error bars (bars1) yer1 = [0.5, 0.4, 0.5] # Choose the height of the error bars (bars2) yer2 = [1, 0.7, 1] # The x position of bars r1 = np.arange(len(bars1)) r2 = [x + barWidth for x in r1] # Create blue bars plt.bar(r1, bars1, width = barWidth, color = 'blue', edgecolor = 'black', yerr=yer1, capsize=7, label='poacee') # Create cyan bars plt.bar(r2, bars2, width = barWidth, color = 'cyan', edgecolor = 'black', yerr=yer2, capsize=7, label='sorgho') # general layout plt.xticks([r + barWidth for r in range(len(bars1))], ['cond_A', 'cond_B', 'cond_C']) plt.ylabel('height') plt.legend() # Show graphic plt.show()