要在 matplotlib 中并排绘制具有相同 X 坐标(G1、G2、G3、G4 和 G5)的条形图,我们可以采取以下步骤 -
创建以下列表 -具有不同数据元素的标签、men_means和women_means。
使用方法返回给定间隔内均匀间隔的值。 numpy.arrange()
设置宽度变量,即width=0.35。
使用subplots 方法创建fig 和ax 变量,其中默认 nrows 和 ncols 为 1。
条形图以给定的 *align*\ment 定位在 *x* 处。它们的尺寸由 *height* 和 *width* 给出。垂直基线为 *bottom*(默认为 0),因此使用方法创建 rect1 和 rect2 。plt.bar()
使用方法设置 Y 轴标签。plt.ylabel()
使用方法为轴设置标题。 set_title()
使用方法获取或设置 X 轴的当前刻度位置和标签。 set_xticks()
使用方法设置网格的 X 轴刻度标签。 set_xticklabels()
使用方法在图形上放置图例。 legend()
使用方法(用户定义的方法)用一些标签注释创建的条(rect1 和rect2)。 autolabel()
要显示该图,请使用该方法。plt.show()
importmatplotlib.pyplotas plt import numpy as np plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True labels = ['G1', 'G2', 'G3', 'G4', 'G5'] men_means = [20, 34, 30, 35, 27] women_means = [25, 32, 34, 20, 25] x = np.arange(len(labels)) width = 0.35 fig, ax = plt.subplots() rects1 = ax.bar(x - width / 2, men_means, width, label='Men') rects2 = ax.bar(x + width / 2, women_means, width, label='Women') ax.set_ylabel('Scores') ax.set_title('Scores by group and gender') ax.set_xticks(x) ax.set_xticklabels(labels) ax.legend() def autolabel(rects): for rect in rects: height = rect.get_height() ax.annotate('{}'.format(height), xy=(rect.get_x() + rect.get_width() / 2, height), xytext=(0, 3), # 3 points vertical offset textcoords="offset points", ha='center', va='bottom') autolabel(rects1) autolabel(rects2) plt.show()输出结果