import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = ["SimHei"] # windows系统
plt.rcParams['axes.unicode_minus']=False #正常显示符号
%matplotlib inline
我们假设x为小明的语文 数学 英语 综合的成绩,y为小红语文 数学 英语 综合的成绩
那么只需要绘制横向柱状图的时候,将x进行取相反数即可得到同直线双向柱状图
x=np.array([95,87,92,100])
y=np.array([67,99,96,89])
plt.figure(figsize=(12,4))
plt.barh(range(len(y)), -x,color='lightblue',label='小明',height=0.5)
plt.barh(range(len(x)), y,color='pink',label='小红',height=0.5)
虽然我们画出了大致的图,但是发现横纵坐标对不上,那么我们需要对其进行一定的修改,各位也要根据自己的数据属性量进行更改才能达到合适的效果
plt.ylim(-1,4)
plt.xlim(-120,120)
plt.yticks((-1,0,1,2,3,4),('','语文','数学','英语','综合',''))
plt.xticks((-100,-50,0,50,100),('100','50','0','50','100'))
plt.axvline(0, color='black', linestyle='-',linewidth=2)
plt.legend(loc='upper right')