【Python】用matplotlib畫條形圖
阿新 • • 發佈:2021-06-24
1.簡單圖形
資料:
程式碼:
import pandas as pd import matplotlib.pyplot as plt catering = r'C:\Users\xxx\Desktop\data\課題.xls' df = pd.read_excel(catering) plt.rcParams['font.sans-serif'] = 'SimHei'#中文字型 plt.rcParams['axes.unicode_minus'] = False #負號正常顯示 ketilist=[] yearlist=[] for ax in range(0,10): yearlist.append(int(df['年份'][ax+0:ax+1])) ketilist.append(int(df['專案(課題)數(項)'][ax+0:ax+1])) width = 0.5 #條形寬度 # 設定圖形大小 plt.figure(figsize=(10,5),dpi=80) plt.bar(yearlist,ketilist,width=width,label="xxx數(項)") #橫座標刻度,高度,寬度,標籤(可用於圖例) #在條形圖上新增數字 for a,b in zip(yearlist,ketilist): plt.text(a, b, b, ha='center', va= 'bottom',fontsize=14) # 設定圖例 #plt.legend() # 設定x軸刻度 plt.xticks(yearlist,yearlist,size = 16) #plt.xlim(2010,2019) #無法完全顯示 plt.ylim(0,20000) #不顯示右邊和上邊的邊框 plt.gca().spines['right'].set_color('none') plt.gca().spines['top'].set_color('none') plt.xlabel('年份(年)') plt.ylabel('xxx數(項)') plt.title('xxxxxxxxxxxxxxxxxxxxx數',size=16) plt.show()
結果:
2.複合圖形
資料:
程式碼:
import pandas as pd import matplotlib.pyplot as plt catering = r'C:\Users\xxx\Desktop\data\課題.xls' df = pd.read_excel(catering) plt.rcParams['font.sans-serif'] = 'SimHei'#中文字型 plt.rcParams['axes.unicode_minus'] = False ketilist=[] renyuanlist=[] yearlist=[] for ax in range(0,10): yearlist.append(int(df['年份'][ax+0:ax+1])) ketilist.append(int(df['專案(課題)數(項)'][ax+0:ax+1])) renyuanlist.append(int(df['專案(課題)參加人數摺合全時當量(人年)'][ax+0:ax+1])) bar_width = 0.25 x_y = list(range(len(yearlist))) x_keti = list(i+bar_width for i in x_y) x_renyuan = list(i+bar_width for i in x_keti) # 設定圖形大小 plt.figure(figsize=(10,5),dpi=80) plt.bar(x_keti,ketilist,width=bar_width,label="課題專案數(項)") plt.bar(x_renyuan,renyuanlist,width=bar_width,label="參加人員摺合全時當量(人年)") # 設定圖例 plt.legend() # 設定x軸刻度 u = [] for a,b in zip(x_keti,x_renyuan): u.append(a + (b-a)/2) plt.xticks(u,yearlist,size = 16) plt.ylim(5000,25000) #不顯示邊框 plt.gca().spines['right'].set_color('none') plt.gca().spines['top'].set_color('none') plt.xlabel('年份(年)') plt.title('xxx課題及參加人數',size=16) plt.show()
結果: