2024-08-03|閱讀時間 ‧ 約 38 分鐘

【資料分析】python資料視覺化基礎操作語法彙整

raw-image

Python資料視覺化在數據分析中扮演著關鍵角色,主要功能是將複雜的數據轉換為易於理解的圖形和圖表。透過視覺化,可以迅速捕捉數據中的模式、趨勢和異常,並有效地傳達分析結果。這對於發現潛在的問題、驗證假設和支援決策非常重要。Python提供了如Matplotlib、Seaborn、Plotly、Bokeh等強大的資料視覺化工具,使得創建專業和精美的圖表變得相對簡單和高效,今天將著重在介紹Matplotlib的基礎使用。


# 可使用目錄功能快速確認要閱覽的主題



簡單折線圖

import matplotlib.pyplot as plt

# 第一組數據
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]

# 第二組數據
x2 = [1, 2, 3, 4, 5]
y2 = [2, 6, 12, 18, 27]

# 繪製圖表
plt.plot(x, y,label=['第一組數據圖例'])
plt.plot(x2, y2,label=['第二組數據圖例'])

# 設定可正常顯示繁體中文的字型
plt.rc('font',family='Microsoft JhengHei')

# 添加標題和標籤
plt.title("簡單的折線圖")
plt.xlabel("X軸標籤")
plt.ylabel("Y軸標籤")

# 顯示圖例
plt.legend()

# 顯示圖表
plt.show()


折線圖參數調整

import matplotlib.pyplot as plt

# 數據
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

# 設定圖形大小和分辨率
plt.figure(figsize=(10, 5), dpi=100)

# 繪製折線圖並自定義參數
plt.plot(x, y, color='b', linestyle='--', linewidth=2.0, marker='o', markersize=8, markerfacecolor='red', markeredgecolor='blue', label='數據1')

# 設定標題和標籤
plt.title('折線圖示例')
plt.xlabel('X軸')
plt.ylabel('Y軸')

# 設定刻度標籤
plt.xticks([1, 2, 3, 4, 5])
plt.yticks([2, 3, 5, 7, 11])

# 顯示網格線
plt.grid(True)

# 顯示圖例
plt.legend()

# 顯示圖形
plt.show()


參數說明

  1. 顏色和樣式
  • color:設定折線的顏色,例如 'r'(紅色),'#00FF00'(綠色)。
  • linestyle:設定折線的樣式,例如 '-'(實線),'--'(虛線),'-.'(點劃線),':'(點線)。
  • linewidth:設定折線的寬度,例如 2.0
  1. 標記
  • marker:設定數據點的標記樣式,例如 'o'(圓點),'s'(正方形),'^'(三角形)。
  • markersize:設定標記的大小,例如 8
  • markerfacecolor:設定標記內部顏色。
  • markeredgecolor:設定標記邊緣顏色。
  1. 刻度和網格
  • plt.xticks()plt.yticks():設定刻度標籤。
  • plt.grid():顯示或隱藏網格線。
  1. 圖形大小和分辨率
  • plt.figure(figsize=(width, height), dpi=dpi):設定圖形大小和分辨率。


簡單柱狀圖

import matplotlib.pyplot as plt

# 數據
x = ['A', 'B', 'C', 'D']
y = [5, 7, 3, 4]

# 繪製柱狀圖
plt.bar(x, y)

# 添加標題和標籤
plt.title("簡單的柱狀圖")
plt.xlabel("類別")
plt.ylabel("值")

# 設定可正常顯示繁體中文的字型
plt.rc('font',family='Microsoft JhengHei')

# 顯示圖表
plt.show()
import matplotlib.pyplot as plt

# 數據
x = [3, 4, 1]
y = [8, 5, 2]

# 繪製柱狀圖
plt.bar(x, y)

# 添加標題和標籤
plt.title("簡單的柱狀圖")
plt.xlabel("X軸")
plt.ylabel("Y軸")

# 設定可正常顯示繁體中文的字型
plt.rc('font',family='Microsoft JhengHei')

# 顯示圖表
plt.show()

# X 如果是數值,數值本身有連續性,即使 X = [3, 4, 1,],最終顯示的排序由左至右會是[1, 3, 4]


柱狀圖參數調整

import matplotlib.pyplot as plt

# 數據
categories = ['A', 'B', 'C', 'D']
values = [10, 20, 15, 25]

# 設定圖形大小和分辨率
plt.figure(figsize=(10, 5), dpi=100)

# 繪製柱狀圖並自定義參數
plt.bar(categories, values, color='skyblue', edgecolor='black', linewidth=1.5, hatch='/', width=0.5, label='數據1')

# 設定標題和標籤
plt.title('柱狀圖示例')
plt.xlabel('類別')
plt.ylabel('值')

# 設定刻度標籤
plt.xticks(categories)
plt.yticks([0, 5, 10, 15, 20, 25])

# 顯示網格線
plt.grid(True)

# 顯示圖例
plt.legend()

# 顯示圖形
plt.show()


參數說明

  1. 顏色和樣式
  • color:設定柱子的顏色,可以是一個顏色或一個顏色列表。
  • edgecolor:設定柱子邊框的顏色。
  • linewidth:設定柱子邊框的寬度。
  • hatch:設定柱子的圖案填充,例如 '/'(斜線),'\\'(反斜線),'|'(垂直線),'-'(水平線)。
  1. 柱子的寬度
  • width:設定柱子的寬度。
  1. 刻度和網格
  • plt.xticks()plt.yticks():設定刻度標籤。
  • plt.grid():顯示或隱藏網格線。
  1. 圖形大小和分辨率
  • plt.figure(figsize=(width, height), dpi=dpi):設定圖形大小和分辨率。


簡單散點圖

import matplotlib.pyplot as plt

# 第一組數據
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]

# 第二組數據
x2 = [1, 2, 3, 4, 5]
y2 = [2, 6, 12, 18, 27]

# 繪製散點圖
plt.scatter(x, y, label='標籤一')
plt.scatter(x2, y2, label='標籤二')

# 添加標題和標籤
plt.title("簡單的散點圖")
plt.xlabel("X軸")
plt.ylabel("Y軸")

# 設定可正常顯示繁體中文的字型
plt.rc('font',family='Microsoft JhengHei')

# 顯示圖例
plt.legend()

# 顯示圖表
plt.show()


散點圖參數調整

import matplotlib.pyplot as plt

# 數據
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
sizes = [50, 100, 150, 200, 250]
colors = [1, 2, 3, 4, 5]

# 設定圖形大小和分辨率
plt.figure(figsize=(10, 5), dpi=100)

# 繪製散點圖並自定義參數
plt.scatter(x, y, s=sizes, c=colors, alpha=0.6, edgecolor='black', linewidth=1.5, label='數據1')

# 設定標題和標籤
plt.title('散點圖示例')
plt.xlabel('X軸')
plt.ylabel('Y軸')

# 設定刻度標籤
plt.xticks([1, 2, 3, 4, 5])
plt.yticks([2, 3, 5, 7, 11])

# 顯示網格線
plt.grid(True)

# 顯示圖例
plt.legend()

# 顯示圖形
plt.colorbar() # 顯示顏色條
plt.show()


參數說明

  1. 顏色和樣式
  • color:設定點的顏色,可以是一個顏色或一個顏色列表。
  • c:設定點的顏色,可以使用單一顏色或一個數值序列來根據數值著色。
  • marker:設定標記樣式,例如 'o'(圓點),'s'(正方形),'^'(三角形)。
  1. 大小
  • s:設定點的大小,可以是一個數值或一個數值列表。
  1. 透明度
  • alpha:設定點的透明度,範圍從0(完全透明)到1(完全不透明)。
  1. 邊框
  • edgecolor:設定點的邊框顏色。
  • linewidth:設定點的邊框寬度。
  1. 刻度和網格
  • plt.xticks()plt.yticks():設定刻度標籤。
  • plt.grid():顯示或隱藏網格線。
  1. 圖形大小和分辨率
  • plt.figure(figsize=(width, height), dpi=dpi):設定圖形大小和分辨率。


簡單圓餅圖

import matplotlib.pyplot as plt

# 數據
labels = 'A', 'B', 'C', 'D'
sizes = [15, 30, 45, 10]

# 繪製餅圖
plt.pie(sizes, labels=labels, autopct='%1.1f%%')

# 添加標題
plt.title("簡單的餅圖")

# 設定可正常顯示繁體中文的字型
plt.rc('font',family='Microsoft JhengHei')

# 顯示圖例
plt.legend()

# 顯示圖表
plt.show()

autopct='%1.1f%%' 的解釋

autopct 參數用來控制餅圖上顯示的自動百分比標籤。這個參數接受一個字符串格式或一個函數,用來指定如何顯示每個餅圖部分的百分比。

%1.1f:這是一個格式化字符串,用來指定浮點數的格式。

  • %:這是格式化操作的開始標誌。用來指示如何格式化後面的數值。
  • 1:這表示總共顯示至少1個字符(包括小數點和小數位)。
  • .1:這表示顯示1位小數。
  • f:這表示以浮點數格式顯示數值。

%%:這表示一個百分號。由於百分號在格式字符串中有特別的意義,所以需要用兩個百分號來表示一個實際的百分號。


圓餅圖參數調整

import matplotlib.pyplot as plt

# 數據
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
explode = (0, 0.1, 0, 0) # 將第二塊分離出來

# 繪製圓餅圖並自定義參數
plt.figure(figsize=(8, 8))
plt.pie(sizes, labels=labels, colors=colors, explode=explode, autopct='%1.1f%%', shadow=True, startangle=90, pctdistance=0.85, wedgeprops={'edgecolor': 'black'})

# 設置標題
plt.title('圓餅圖示例')

# 顯示圖形
plt.show()


參數說明

  1. 顏色
  • colors:設定各個部分的顏色,可以是一個顏色列表。
  1. 起始角度
  • startangle:設定第一塊的起始角度,以度數為單位。
  1. 比例顯示
  • autopct:設定每塊的比例顯示格式,例如 '%1.1f%%' 表示保留一位小數的百分比。
  1. 分離圓餅塊
  • explode:設定分離圓餅塊的距離,默認為0。如果要將某塊突出顯示,可以設置一個數值列表,其中需要分離的塊設置為大於0的值。
  1. 陰影
  • shadow:設置是否顯示陰影,取值為布林值。
  1. 圓餅比例
  • pctdistance:設定比例文字距離圓心的距離,默認為0.6。
  1. 圓形或扁平化
  • normalize:設置是否將數據標準化,使得總和為1。如果為 False,數據不會被標準化。
  1. 圓餅中心空白
  • wedgeprops:設置圓餅塊的屬性,例如邊框顏色、寬度等。


儲存圖表

# 圖片繪製完後,使用​ plt.savefig 來儲存圖片
plt.savefig('plot.png')


進階學習資源

Matplotlib - Examples


分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.