2023年7月12日 星期三

百香果Python程式設計-Matplotlib資料視覺化庫

 Matplotlib 是一個常用的 Python 資料視覺化庫,用於創建各種靜態、動態和互動式圖表。它提供了一個廣泛的功能,使用戶能夠製作出具有各種樣式和格式的高品質圖形。

Matplotlib 的主要特點包括:

  1. 簡單易用:Matplotlib 提供了直觀且簡單的 API,使得使用者能夠輕鬆地創建各種圖表。
  2. 多種圖表類型:Matplotlib 支援多種常用的圖表類型,包括折線圖、散點圖、柱狀圖、餅圖、直方圖等。
  3. 客製化能力:Matplotlib 允許使用者對圖表進行高度自定義,包括設置標籤、樣式、顏色、軸範圍、圖例等,以滿足用戶的特定需求。
  4. 支援多種輸出格式:Matplotlib 可以將圖表以多種常見的圖片格式保存,如 PNG、JPEG、SVG,也支援 PDF、EPS 等向量格式。
  5. 廣泛的互動功能: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()

執行結果:


沒有留言:

張貼留言