1.柱狀堆積圖
import matplotlib.pyplot as plt %matplotlib inline plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus']=False x=[1,2,3,4] classes=['一班','二班','三班','四班'] ch=[70,80,85,77] english=[80,85,88,82] math=[90,96,88,87] plt.bar(x,chinese,label='Chinese',color='orange')#設置圖表顏色 plt.bar(x,english,bottom=chinese,color='#43cd80',label='English') cheng=[chinese[i]+english[i] for i in range(len(x))] plt.bar(x,english,bottom=cheng,color='#804dff',label='Math') plt.xlabel('班級') #橫坐標 plt.ylabel('成績') #縱坐標 plt.ylim([0,300]) plt.xlim([0,6]) plt.title("學生成績條形圖") #標題 plt.xticks(x,classes) #xticks() 對應坐標名稱 #plt.text(1,81,70) #添加文字text(橫坐標,縱坐標,文字) for i in range(0,len(x)): plt.text(i+1,ch[i]-10,ch[i],color='white') plt.text(i+1,ch[i]+english[i]-10,english[i],color='white') plt.text(i+1,ch[i]+english[i]+math[i]-20,math[i],color='white') plt.text(i+1,ch[i]+english[i]+math[i]+5,ch[i]+english[i]+math[i],color='black') plt.legend(loc='upper right')#圖例 plt.grid(axis='y',color='gray',linestyle='--',linewidth=1) plt.show()
2.分塊圖
import matplotlib.pyplot as plt %matplotlib inline plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus']=False class_list=['一班','二班','三班','四班'] ch=[70,80,85,77] english=[80,85,88,82] math=[90,96,88,87] w=0.4 x1=[1.0,3.0,5.0,7.0] x2=[i+w for i in x1] x3=[i+w for i in x2] plt.bar(x1,ch,label='Chinese',color='orange',width=w) plt.bar(x2,english,label='English',color='blue',width=w) plt.bar(x3,math,label='Math',color='g',width=w) plt.legend() plt.title("學生成績分塊圖") plt.xlabel('class') plt.ylabel('score') plt.xticks(x2,class_list) plt.show()