​數據可視化|用斜率圖進行對比分析

2021-02-14 林驥
01

你好,我是林驥。

斜率圖,可以快速展現兩組數據之間各維度的變化,特別適合用於對比兩個時間點的數據。

比如說,為了對比分析某產品不同功能的用戶滿意度,經過問卷調查和數據統計,得到下面這個調查結果:

你不妨自己先思考一下,如何對這組數據進行可視化,才能讓信息傳遞變得更加高效?

下面是我用 matplotlib 製作的圖表:

 

從圖中可以直觀地看出,功能 C 的用戶滿意度明顯下降,我們用比較鮮明的橙色來表示,以便引起觀眾重點關注;功能 D 和功能 E 的用戶滿意度明顯提升,我們用藍色表示,代表數據正在向好的方向發展;功能 A 和功能 B 的用戶滿意度變化不大,我們用淺灰色表示,以便削弱觀眾對這兩個功能的注意力,把更多的精力用於分析用戶滿意度明顯下降的功能點,從而讓圖表起到提升信息傳遞效率的目的。

02

下面是用 matplotlib 畫圖的詳細步驟。

首先,導入所需的庫,並設置中文字體和定義顏色等。

# 導入所需的庫import numpy as npimport pandas as pdimport matplotlib as mplimport matplotlib.pyplot as pltimport matplotlib.image as image
# 正常顯示中文標籤mpl.rcParams['font.sans-serif'] = ['SimHei']
# 自動適應布局mpl.rcParams.update({'figure.autolayout': True})
# 正常顯示負號mpl.rcParams['axes.unicode_minus'] = False
# 定義顏色,主色:藍色,輔助色:灰色,互補色:橙色c = {'藍色':'#00589F', '深藍色':'#003867', '淺藍色':'#5D9BCF', '灰色':'#999999', '深灰色':'#666666', '淺灰色':'#CCCCCC', '橙色':'#F68F00', '深橙色':'#A05D00', '淺橙色':'#FBC171'}

其次,從 Excel 文件中讀取隨機模擬的數據,並定義畫圖用的數據。

# 數據源路徑filepath='./data/問卷調查結果.xlsx'
# 讀取 Excel文件df = pd.read_excel(filepath, index_col='調查年度')
# 定義畫圖用的數據category_names = df.columnslabels = df.indexdata = df.valuesdata_cum = data.cumsum(axis=1)

接下來,開始用「面向對象」的方法進行畫圖。

# 使用「面向對象」的方法畫圖,定義圖片的大小fig, ax=plt.subplots(figsize=(6, 6))
# 設置背景顏色fig.set_facecolor('w')ax.set_facecolor('w')
# 設置標題ax.set_title('\n用戶滿意度隨時間的變化\n', fontsize=26, loc='left', color=c['深灰色'])
# 定義顏色category_colors = [c['淺灰色'], c['淺灰色'], c['橙色'], c['藍色'], c['藍色']]
# 畫斜率圖for i, color in zip(np.arange(len(df.columns)), category_colors): ax.plot(df.index, df.iloc[:, i], marker='o', color=color)
# 設置數據標籤及其文字顏色 ax.text(-0.03, df.iloc[0, i], df.columns[i] + ' ' + '{:.0%}'.format(df.iloc[0, i]), ha='right', va='center', color=color, fontsize=16) ax.text(1.06, df.iloc[1, i], '{:.0%}'.format(df.iloc[1, i]), ha='left', va='center', color=color, fontsize=16)
# 設置 Y 軸刻度範圍ax.set_ylim(df.values.min()-0.02, df.values.max()+0.01)
# 隱藏 Y 軸ax.yaxis.set_visible(False)
# 隱藏邊框ax.spines['top'].set_visible(False)ax.spines['right'].set_visible(False)ax.spines['left'].set_visible(False)ax.spines['bottom'].set_visible(False)
# 隱藏 X 軸的刻度線ax.tick_params(axis='x', which='major', length=0)
# 設置坐標標籤字體大小和顏色ax.tick_params(labelsize=16, colors=c['灰色'])
plt.show()

運行之後,便得到上面那張圖。

你可以前往 https://github.com/linjiwx/mp 下載畫圖用的數據和完整代碼。

03

對於同一組數據,不同的人可能會有不同的觀察視角,對它們進行可視化,往往也存在多種不同的解決方案,這裡介紹的方法,並不是唯一正確的答案。關鍵在於,圖表的設計者想要表達什麼信息?是否讓觀眾正確且快速地理解了想要表達的信息?

不同類型的圖表,有著不同的優勢和劣勢。

斜率圖的優勢,是能快速看到每個類別前後發生的變化,並能根據線條的陡峭程度,直觀地感受到變化的幅度。

斜率圖的劣勢,是看不出整體與部分的佔比關係。另外,如果類別的順序很重要,那麼也不適合使用斜率圖,因為類別會根據數值大小自動進行排列。

最後,留給你一道思考題:在你看到過的各種數據中,有哪些數據是適合用斜率圖進行對比分析的?

當你不知道該選擇什麼類型的圖表時,不妨停下來想一想,你希望讓觀眾了解什麼或者做什麼?

作者簡介

我是林驥,從 2008 年開始從事「數據化分析」,堅持用心做原創,期待你的關注。

 長按二維碼識別關注,發送「入群

相關焦點

  • 數據可視化|用堆疊條形圖進行對比分析
    堆疊條形圖,用於展示不同類別之間佔比數據,常常能起到很好的對比效果。比如說,對某產品的不同功能進行用戶調查,讓 100 個用戶分別按 1 ~ 5 分進行評分,經過統計,得到每個功能對應評分的人數佔比如下:對這組數據進行對比分析,我們可以把它做成一張堆疊條形圖,效果如下:
  • 數據可視化|用散點圖進行數據分析
    比如說,假設表格中有 10000 個客戶年齡和消費金額的數據:我們可以計算每一個年齡對應的人均消費金額,比如說,所有 20 歲客戶的平均消費金額約為 1383.69 元,然後我們可以畫出一張散點圖:從圖中可以看出,客戶的年齡與人均消費金額有很強的相關性,其中應用了線性回歸算法
  • 如何對輿情數據進行比較分析與可視化呈現?
    在輿情研究過程中,數據能夠為我們提供客觀分析研判的支撐。輿情數據的比較分析,是最基礎的分析方法之一。通過對不同對象的輿情數據進行比較分析,可以找到輿情工作的重點、難點。輿情數據比較分析的常見維度包括傳播渠道、媒體類型、地區等。
  • 數據可視化之旅:常用圖表對比
    本篇將通過一些來源於實際業務場景的數據集實例,來進行不同的可視化方案對比,從而總結出根據可視化目的、數據集特徵,去選擇圖表類型的一般套路。圖表對比部分,會選擇一些常見的,且比較容易混淆的圖表類型來做對比,以「可視化目標→數據集準備→圖表選擇和對比→經驗總結」的方式來行文。
  • 如何用EXCEL按職級進行人員結構數據分析並進行圖表可視化?
    小琪有了之前的數據分析經驗,面對接下來要做的職級統計,更是胸有成竹了。小琪對職級的數據分析仍然從兩個維度進行,首先是各部門的職級結構分析,其次是分析各個職級在部門的分布情況。在進行數據分析之前,首先要製作匯總表(如圖 3155所示):
  • 用Python進行數據可視化的10種方法
    數據科學家並不遜色於藝術家。他們用數據可視化的方式繪畫,試圖展現數據內隱藏的模式或表達對數據的見解。更有趣的是,一旦接觸到任何可視化的內容、數據時,人類會有更強烈的知覺、認知和交流。 在數據科學中,有多種工具可以進行可視化。在本文中,我展示了使用Python來實現的各種可視化圖表。 怎樣才能在Python中實現可視化?
  • 大數據可視化常用分析圖表的優缺點
    可視化圖表次整理了一些平常不太使用,但在合適的場景的使用它們,往往能為你的分析報告加分不少的圖表。
  • Excel商務圖表設計,從數據到圖表,變身可視化達人
    前言圖表是語言表達的一種重要形式,它藉助於各種可視化的組件,通過展示數據間的對比,達到傳遞信息、表達觀點或發現數據背後的趨勢等目的。視覺暗示:可視化包括用圖形、顏色和大小來編碼數據,選擇什麼取決於數據本身和目標 坐標系:用散點圖映射數據和用餅圖是不一樣的,散點圖中有x坐標和y坐標,其他圖中則有角度,就像直角坐標系和極坐標系的對比。
  • 【Python教程】用Python進行數據可視化
    在本文中,我將介紹如何開始使用Python和matplotlib、seaborn兩個庫對數據進行可視化。下面我們就用上面這個簡單的數據集作為例子,展示用 Python 做出9種可視化效果,並附有相關代碼。
  • 數據可視化神器 | 秒出關係型數據分析圖
    是一款網絡分析領域的數據可視化處理軟體,開發者對它寄予的希望是:成為 「數據可視化領域的Photoshop」。Gephi是開發和理解圖形的工具。就像Photoshop一樣,但是對於圖形,用戶可以通過創造數據表達方式,改變其結構、形狀和顏色來顯示隱藏目標數據的屬性。目的是幫助數據分析人員在數據來源過程中做出假設、直觀地發現模式、避免結構中存在的奇點或故障。它是傳統統計學的一種補充工具,因為視覺思維和交互界面被認可以有效促進推理的方式。這是一個用於探索數據分析的軟體,是一個視覺分析領域的研究範例。
  • 4 種可視化常用的數據分析圖表!
    來源:大數據觀察可視化圖表這次整理了一些平常不太使用,但在合適的場景的使用它們,往往能為你的分析報告加分不少的圖表
  • Tableau介紹與上市企業的可視化數據分析案例
    軟體做了一個很漂亮的可視化分析報告。今天這篇文章就分享一下Tableau和同類型數據分析工具的介紹,以及為什麼要用這類工具,還有這篇關於上市企業的數據分析報告的截圖。 中國式報表很多國家的人習慣把excel表格叫做中國式報表,原因是在同一張表單上數字密密麻麻、條目繁多,對於表單不熟悉的人來講,想從這繁雜的數據中找到有用的信息有一定難度。
  • Python腳本示例:從log中讀取數據,進行分析和可視化
    Python腳本示例:從log中讀取數據,進行分析和可視化 Python是數據處理常用工具,具有較好的通用性和跨平臺性,使用起來也非常簡單。
  • 輕鬆用 Seaborn 進行數據可視化
    )輕鬆用 Seaborn 進行數據可視化摘要:本文屬於 Seaborn 的基礎教程,介紹了 直方圖、聯合分布圖、矩陣圖、箱形圖等,通過本文可以看出,使用 seaborn 可以輕鬆的進行數據可視化。『Python數據之道』已整合本文的相關原始碼到 jupyter notebook 文件中,如需獲取,請在公眾號後臺回復 「code」。Seaborn 是一個數據可視化庫,可幫助在Python中創建有趣的數據可視化。 大多數數據分析需要識別趨勢和建立模型。 本文將幫助您開始使用 Seaborn庫創建數據可視化。
  • 教育科研中的數據可視化分析
    在科研實踐中,數據分析可幫助人們做出現狀、趨勢或相互關係的判斷,以便採取適當決策、制訂相關政策和開始行動。因此,它也是從事此類研究的科研人員的基本功。宏觀的數據分析可以是一個國家一個地區的,微觀的數據分析可以是一個班級甚至一個學生的學習成績;大到所有的數據,小到只是小樣本的抽樣。社會的發展,人口的增加、技術的進步,人們積累的數據越來越多,而且隨著網際網路的出現和發展,展現在人們面前的是浩瀚無垠的信息海洋。海量的數據只是單純地記載了枯燥的數字,出現了「數據爆炸但認識貧乏」的現象。
  • 大數據分析平臺的可視化數據探索趨勢
    以「大數據分析」為關鍵詞去進行搜索,你可以在大多數條目中看到「數據分析平臺」和「可視化」的概念。在發展受到局限時,人類喜歡並擅長於去使用工具和製造工具。人類對圖形信息的攝取效率遠大於單純的文字數字。在企業運維決策的場景下,即是用適當的數據模型和統計分析方法對收集的企業數據進行可視化分析,轉化成可視化結果清晰準確地形成結論報告,輔助企業了解運營狀況、找到發展癥結以及幫助決策等。下面這張圖展示了不同類型的分析需求對應的可視化類型。
  • 數據可視化與信息可視化怎麼搞?
    數據可視化和信息可視化都是可視化的一種方式,數據可視化將資料庫中每一個數據項作為單個圖元元素表示,大量的數據集構成數據圖像,同時將數據的各個屬性值以多維數據的形式表示,可以從不同的維度觀察數據,從而對數據進行更深入的觀察和分析。信息可視化,旨在把數據資料以視覺化的方式表現出。信息可視化是一種將數據與設計結合起來的圖片,有利於個人或組織簡短有效地向受眾傳播信息的數據表現形式。
  • 大數據產品分析:淺析數據可視化
    數據可視化——藉助於圖形化手段,清晰有效地傳達與溝通信息同時對數據進行交互分析。為什麼需要?由於人類大腦在記憶能力的限制,所以我們利用視覺獲取的信息量多於感官,在大數據與網際網路時代,企業從傳統的流程式管理方式過渡到基於數據的管理方式將會成為必然的趨勢,數據可視化能夠幫助分析的人對數據有更全面的認識。
  • 活用這幾種統計圖,你的數據可視化逆天了
    數據可視化,顧名思義就是將相對於隱晦的數據使用可視的、交互的圖表方式展示出來,進而形象的、直觀的將數據背後隱藏的信息和規律表示出來。步入大數據時代後,各行各業對數據越來越重視,隨之而來的就是對數據進行一系列的整合、挖掘、可視化分析,這為數據可視化注入了無限的活力,也就導致視覺的元素越來越多樣,從簡單的柱狀圖、線形圖、折線圖,擴展到了氣泡圖、男女圖、地圖、餅圖、散點圖、雷達圖等各種各樣的豐富的圖形。那麼活用了以下的幾種統計圖,你的數據可視化就逆天了。
  • Clustergrammer——基於網絡的高維生物數據熱圖可視化和分析工具
    Fernandez, Gregory W. Gundersen, Adeeb Rahman, Mark L.