Matplotlib 是一個常用的 Python 資料視覺化庫,用於創建各種靜態、動態和互動式圖表。它提供了一個廣泛的功能,使用戶能夠製作出具有各種樣式和格式的高品質圖形。
Matplotlib 的主要特點包括:
- 簡單易用:Matplotlib 提供了直觀且簡單的 API,使得使用者能夠輕鬆地創建各種圖表。
- 多種圖表類型:Matplotlib 支援多種常用的圖表類型,包括折線圖、散點圖、柱狀圖、餅圖、直方圖等。
- 客製化能力:Matplotlib 允許使用者對圖表進行高度自定義,包括設置標籤、樣式、顏色、軸範圍、圖例等,以滿足用戶的特定需求。
- 支援多種輸出格式:Matplotlib 可以將圖表以多種常見的圖片格式保存,如 PNG、JPEG、SVG,也支援 PDF、EPS 等向量格式。
- 廣泛的互動功能:Matplotlib 提供了互動式功能,允許使用者進行縮放、平移、顯示數值等操作,並支援將圖表嵌入到 GUI 應用程式中。
以下是一個使用 Matplotlib 創建簡單折線圖的示例:
範例一:單折線圖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties # 設置中文字體 font = FontProperties(fname='C:\Windows\Fonts\kaiu.ttf') # 2022年百香果交易數量 months = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] quantity = [643003.8, 183158.4, 265054.6, 228489.7, 217712.4, 664609.9, 1435117.4, 1063251.8, 1242368.3, 1152853.3, 1273821.8, 964761.6] # 創建折線圖 plt.plot(months, quantity) # 設置標籤和標題 plt.xlabel('月份', fontproperties=font) plt.ylabel('交易數量 (公斤)', fontproperties=font) plt.title('2022年百香果交易情形', fontproperties=font) # 顯示圖表 plt.show() |
執行結果;
範例二:柱狀圖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties # 設置中文字體 font = FontProperties(fname='C:\Windows\Fonts\kaiu.ttf') # 2022年百香果交易數量 months = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] quantity = [643003.8, 183158.4, 265054.6, 228489.7, 217712.4, 664609.9, 1435117.4, 1063251.8, 1242368.3, 1152853.3, 1273821.8, 964761.6] # 創建柱狀圖 plt.bar(months, quantity) # 設置標籤和標題 plt.xlabel('月份', fontproperties=font) plt.ylabel('交易數量 (公斤)', fontproperties=font) plt.title('2022年百香果交易情形', fontproperties=font) # 顯示圖表 plt.show() |
執行結果:
範例三:雙折線圖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties # 設置中文字體 font = FontProperties(fname='C:\Windows\Fonts\kaiu.ttf') # 2022年百香果交易數量和平均價 months = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] quantity = [643003.8, 183158.4, 265054.6, 228489.7, 217712.4, 664609.9, 1435117.4, 1063251.8, 1242368.3, 1152853.3, 1273821.8, 964761.6] avg_price = [31.3, 48.8, 59.1, 66.2, 65.5, 58.8, 48.4, 45.3, 47.1, 50.3, 44.0, 38.6] # 創建折線圖 plt.plot(months, quantity, label='交易數量') plt.plot(months, avg_price, label='平均價格') # 設置標籤和標題 plt.xlabel('月份', fontproperties=font) plt.ylabel('數量/價格', fontproperties=font) plt.title('2022年百香果交易情形', fontproperties=font) # 添加圖例並設置中文字體 plt.legend(prop=font) # 顯示圖表 plt.show() |
執行結果:
範例四:雙刻度的折線圖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties # 設置中文字體 font = FontProperties(fname='C:\Windows\Fonts\kaiu.ttf') # 2022年百香果交易數量和平均價 months = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] quantity = [643003.8, 183158.4, 265054.6, 228489.7, 217712.4, 664609.9, 1435117.4, 1063251.8, 1242368.3, 1152853.3, 1273821.8, 964761.6] avg_price = [31.3, 48.8, 59.1, 66.2, 65.5, 58.8, 48.4, 45.3, 47.1, 50.3, 44.0, 38.6] # 創建折線圖 fig, ax1 = plt.subplots() # 設置第一個 y 軸(交易數量) ax1.plot(months, quantity, label='交易數量', color='blue') ax1.set_xlabel('月份', fontproperties=font) ax1.set_ylabel('交易數量 (公斤)', fontproperties=font, color='blue') ax1.tick_params(axis='y', colors='blue') # 創建第二個 y 軸(平均價格) ax2 = ax1.twinx() ax2.plot(months, avg_price, label='平均價格', color='red') ax2.set_ylabel('平均價格', fontproperties=font, color='red') ax2.tick_params(axis='y', colors='red') # 設置標題 plt.title('2022年百香果交易情形', fontproperties=font) # 添加圖例 lines = [ax1.get_lines()[0], ax2.get_lines()[0]] plt.legend(lines, [line.get_label() for line in lines], loc='best', prop=font) # 顯示圖表 plt.show() |
執行結果:
範例五:圓餅圖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties # 設置中文字體 font = FontProperties(fname='C:\Windows\Fonts\kaiu.ttf') # 2022年百香果交易數量 months = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] quantity = [643003.8, 183158.4, 265054.6, 228489.7, 217712.4, 664609.9, 1435117.4, 1063251.8, 1242368.3, 1152853.3, 1273821.8, 964761.6] # 繪製圓餅圖 plt.pie(quantity, labels=months, autopct='%1.1f%%', startangle=90) # 設置圖表標題 plt.title('2022年百香果交易數量比例', fontproperties=font) # 顯示圖表 plt.show() |
執行結果:
範例六:圓餅圖-交易額
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties # 設置中文字體 font = FontProperties(fname='C:\Windows\Fonts\kaiu.ttf') # 2022年百香果交易數量和平均價格 months = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] quantity = [643003.8, 183158.4, 265054.6, 228489.7, 217712.4, 664609.9, 1435117.4, 1063251.8, 1242368.3, 1152853.3, 1273821.8, 964761.6] avg_price = [31.3, 48.8, 59.1, 66.2, 65.5, 58.8, 48.4, 45.3, 47.1, 50.3, 44.0, 38.6] # 計算交易額(交易數量 * 平均價格) transaction_amount = [qty * price for qty, price in zip(quantity, avg_price)] # 繪製圓餅圖 plt.pie(transaction_amount, labels=months, autopct='%1.1f%%', startangle=90) # 設置圖表標題 plt.title('2022年百香果交易額比例', fontproperties=font) # 顯示圖表 plt.show() |
執行結果:
沒有留言:
張貼留言