画一个柱状图:设置x轴刻度值,更改x轴刻度颜色,各柱状图label位置调节,柱状图上方数值显示
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
def auto_label(rects):
for rect in rects:
height = rect.get_height()
ax.annotate('{}'.format(height), # put the detail data
xy=(rect.get_x() + rect.get_width() / 2, height), # get the center location.
xytext=(0, 3), # 3 points vertical offset
textcoords="offset points",
ha='center', va='bottom')
def auto_text(rects):
for rect in rects:
ax.text(rect.get_x(),
rect.get_height(),
rect.get_height(),
ha='left',
va='bottom')
labels = ['G1', 'G2', 'G3', 'G4', 'G5']
men_data = [20, 34, 30, 35, 27]
women_data = [25, 32, 34, 20, 25]
index = np.arange(len(labels))
width = 0.2
fig, ax = plt.subplots()
rect1 = ax.bar(index - width / 2, men_data, color ='lightcoral', width=width, label ='Men')
rect2 = ax.bar(index + width / 2, women_data, color ='springgreen', width=width, label ='Women')
ax.set_title('Scores by gender')
ax.set_xticks(ticks=index)
ax.set_xticklabels(labels)
ax.set_ylabel('Scores')
ax.set_ylim(0, 50)
# auto_label(rect1)
# auto_label(rect2)
# auto_text(rect1)
# auto_text(rect2)
ax.legend(loc='upper right', frameon=False)
# fig.tight_layout()
# plt.savefig('2.tif', dpi=300)
# plt.show()