將數據可視化

已完成

分析資料查詢結果最直覺的方式之一,就是以圖表形式視覺化。 Azure Databricks 中的筆記本會在使用者介面中提供圖表功能,而且當該功能未提供您需要的內容時,您可以使用其中一個 Python 圖形連結庫在筆記本中建立及顯示數據視覺效果。

使用內建筆記本圖表

當您在 Azure Databricks 的 Spark 筆記本中顯示數據框架或執行 SQL 查詢時,結果會顯示在程式碼數據格底下。 根據預設,結果會轉譯為數據表,但您也可以將結果檢視為視覺效果,並自定義圖表顯示數據的方式,如下所示:

筆記本的螢幕快照,其中顯示依類別顯示產品計數的視覺效果。

視覺化類型

這些是您可以在 Databricks 中建立的不同視覺效果類型,每種視覺效果都適用於特定類型的資料深入解析。 重點︰

  • 長條圖/折線圖/面積圖:用於顯示一段時間內的趨勢、分類比較或兩者。 有助於查看指標如何演變。

  • 圓形圖:適合顯示整體的比例部分(但不適用於時間序列)。

  • 直方圖:查看數值資料的分佈 (值如何分佈、聚類)。

  • 熱圖:可用於可視化兩個分類軸並按數值著色,有助於查看跨組的模式。

  • 散佈圖/氣泡圖:顯示兩個(或多個)數值變數之間的關係;氣泡允許使用大小或顏色作為第三維度。

  • 箱形圖:比較不同類別的分佈(分佈、四分位數、異常值)。

  • 組合圖:同一圖表中折線和長條的混合,在您想要比較不同尺度的不同指標時很有用。

  • 樞紐分析表:可讓您以表格形式(如 SQL PIVOT/GROUP BY)重塑和彙總資料,有助於跨表分析。

  • 特殊類型:世代分析 (在一段時間內追蹤群組)、計數器顯示 (醒目提示單一摘要計量、可能針對目標)、漏斗圖、地圖視覺效果 (分區著色圖、標記)、文字雲等等。這些更加特殊化。

當您想要以可視化方式快速摘要數據時,筆記本中的內建視覺效果功能很有用。 當您想要更充分掌控數據格式化方式,或顯示已在查詢中匯總的值時,您應該考慮使用圖形套件來建立自己的視覺效果。

在程式碼中使用圖形套件

有許多圖形套件可用來在程式碼中建立資料視覺效果。 特別是,Python 支援大量的套件選擇;大部分都建置在基底 Matplotlib 連結庫上。 圖形庫的輸出可以在筆記本中轉譯,方便結合用來擷取和操作資料的程式碼與內嵌資料視覺效果和 Markdown 資料格,以提供註解。

例如,您可以使用下列 PySpark 程式碼,從先前在本課程模組中探索的假設產品資料彙總資料,並使用 Matplotlib 從彙總的資料建立圖表。

from matplotlib import pyplot as plt

# Get the data as a Pandas dataframe
data = spark.sql("SELECT Category, COUNT(ProductID) AS ProductCount \
                  FROM products \
                  GROUP BY Category \
                  ORDER BY Category").toPandas()

# Clear the plot area
plt.clf()

# Create a Figure
fig = plt.figure(figsize=(12,8))

# Create a bar plot of product counts by category
plt.bar(x=data['Category'], height=data['ProductCount'], color='orange')

# Customize the chart
plt.title('Product Counts by Category')
plt.xlabel('Category')
plt.ylabel('Products')
plt.grid(color='#95a5a6', linestyle='--', linewidth=2, axis='y', alpha=0.7)
plt.xticks(rotation=70)

# Show the plot area
plt.show()

Matplotlib 連結庫需要數據位於 Pandas 數據框架而非 Spark 數據框架中,因此 toPandas 方法會用來轉換它。 接著程式碼會建立具有指定大小的圖表,並用一些自訂屬性設定繪製橫條圖,再顯示繪圖結果。

程式碼所產生的圖表看起來會類似下圖:

條形圖,依類別顯示產品計數。

您可以使用 Matplotlib 連結庫來建立多種圖表;或者,如果您想要的話,您可以使用 Seaborn 等其他連結庫來建立高度自定義的圖表。

備註

根據叢集的 Databricks 執行環境,Matplotlib 和 Seaborn 庫可能已經安裝在 Databricks 叢集上。 如果沒有,或者如果您想要使用尚未安裝的其他程式庫,您可以將它新增至叢集。 如需詳細資訊,請參閱 Azure Databricks 檔中的 叢集連結庫