有效圖表的重要特征:
關聯圖表用于可視化2個或更多變量之間的關系。也就是說,一個變量如何相對于另一個變化。 1、散點圖(Scatter plot) 散點圖是用于研究兩個變量之間關系的經典的和基本的圖表。如果數據中有多個組,則可能需要以不同顏色可視化每個組。在 matplotlib 中,您可以使用 plt.scatter() 方便地執行此操作。 np.unique():列表元素去重 當前的圖表和子圖可以使用plt.gcf()和plt.gca()獲得,分別表示'Get Current Figure'和'Get Current Axes',這樣可以方便的設置x,y軸顯示范圍及標簽。 enumerate(sequence, [start=0])函數用于將一個可遍歷的數據對象(如列表、元組或字符串)組合為一個索引序列,同時列出數據和數據下標,一般用在 for 循環當中。 2、帶邊界的氣泡圖(Bubble plot with Encircling) 有時,您希望在邊界內顯示一組點以強調其重要性。在這個例子中,你從數據框中獲取記錄,并用下面代碼中描述的 encircle() 來使邊界顯示出來。 np.r_是按列連接兩個矩陣,就是把兩矩陣上下相加,要求列數相等,類似于pandas中的concat()。 np.c_是按行連接兩個矩陣,就是把兩矩陣左右相加,要求行數相等,類似于pandas中的merge()。 ConvexHull:給定二維平面上的點集,凸包就是將最外層的點連接起來構成的凸多邊型,它能包含點集中所有的點。 3、帶線性回歸最佳擬合線的散點圖 (Scatter plot with linear regression line of best fit) 如果你想了解兩個變量如何相互改變,那么最佳擬合線就是常用的方法。下圖顯示了數據中各組之間最佳擬合線的差異。要禁用分組并僅為整個數據集繪制一條最佳擬合線,請從下面的sns.lmplot()調用中刪除hue ='cyl'參數。 針對每列繪制線性回歸線 或者,可以在其每列中顯示每個組的最佳擬合線。可以通過在 sns.lmplot() 中設置 col=groupingcolumn 參數來實現,如下: 4、抖動圖 (Jittering with stripplot) 通常,多個數據點具有完全相同的 X 和 Y 值。結果,多個點繪制會重疊并隱藏。為避免這種情況,請將數據點稍微抖動,以便您可以直觀地看到它們。使用 seaborn 的 stripplot() 很方便實現這個功能。 5、計數圖 (Counts Plot) 避免點重疊問題的另一個選擇是增加點的大小,這取決于該點中有多少點。因此,點的大小越大,其周圍的點的集中度越高。 groupby操作涉及拆分對象,應用函數和組合結果的某種組合。這可用于對這些組上的大量數據和計算操作進行分組。 reset_index重置DataFrame的索引,并使用默認值。如果DataFrame具有MultiIndex,則此方法可以刪除一個或多個級別。 6、邊緣直方圖 (Marginal Histogram) 邊緣直方圖具有沿 X 和 Y 軸變量的直方圖。這用于可視化 X 和 Y 之間的關系以及單獨的 X 和 Y 的單變量分布。這種圖經常用于探索性數據分析(EDA)。 7、邊緣箱形圖 (Marginal Boxplot) 邊緣箱圖與邊緣直方圖具有相似的用途。然而,箱線圖有助于精確定位 X 和 Y 的中位數、第25和第75百分位數。 8、相關圖 (Correllogram) 相關圖用于直觀地查看給定數據框(或二維數組)中所有可能的數值變量對之間的相關度量。 9、矩陣圖 (Pairwise Plot) 矩陣圖是探索性分析中的最愛,用于理解所有可能的數值變量對之間的關系。它是雙變量分析的必備工具。 10、發散型條形圖 (Diverging Bars) 如果您想根據單個指標查看項目的變化情況,并可視化此差異的順序和數量,那么散型條形圖 (Diverging Bars) 是一個很好的工具。它有助于快速區分數據中組的性能,并且非常直觀,并且可以立即傳達這一點。 11、發散型文本 (Diverging Texts) 發散型文本 (Diverging Texts)與發散型條形圖 (Diverging Bars)相似,如果你想以一種漂亮和可呈現的方式顯示圖表中每個項目的價值,就可以使用這種方法。 12、發散型包點圖 (Diverging Dot Plot) 發散型包點圖 (Diverging Dot Plot)也類似于發散型條形圖 (Diverging Bars)。然而,與發散型條形圖 (Diverging Bars)相比,條的缺失減少了組之間的對比度和差異。 13、帶標記的發散型棒棒糖圖 (Diverging Lollipop Chart with Markers) 帶標記的棒棒糖圖通過強調您想要引起注意的任何重要數據點并在圖表中適當地給出推理,提供了一種對差異進行可視化的靈活方式。 14、面積圖 (Area Chart) 通過對軸和線之間的區域進行著色,面積圖不僅強調峰和谷,而且還強調高點和低點的持續時間。高點持續時間越長,線下面積越大。 這里annotate的函數值得學習,臺風路徑信息的框框或者文字避讓算法,都需要用到這個函數。 15、有序條形圖 (Ordered Bar Chart) 有序條形圖有效地傳達了項目的排名順序。但是,在圖表上方添加度量標準的值,用戶可以從圖表本身獲取精確信息。 16、棒棒糖圖 (Lollipop Chart) 棒棒糖圖表以一種視覺上令人愉悅的方式提供與有序條形圖類似的目的。 17、包點圖 (Dot Plot) 包點圖表傳達了項目的排名順序,并且由于它沿水平軸對齊,因此您可以更容易地看到點彼此之間的距離。 18、坡度圖 (Slope Chart) 坡度圖最適合比較給定人/項目的“前”和“后”位置。 19、啞鈴圖 (Dumbbell Plot) 啞鈴圖表傳達了各種項目的“前”和“后”位置以及項目的等級排序。如果您想要將特定項目/計劃對不同對象的影響可視化,那么它非常有用。 20、連續變量的直方圖 (Histogram for Continuous Variable) 直方圖顯示給定變量的頻率分布。下面的圖表示基于類型變量對頻率條進行分組,從而更好地了解連續變量和類型變量。 也可以看成堆疊圖的形式,同樣適用于空氣質量的分級。 21、類型變量的直方圖 (Histogram for Categorical Variable) 類型變量的直方圖顯示該變量的頻率分布。通過對條形圖進行著色,可以將分布與表示顏色的另一個類型變量相關聯。 22、密度圖 (Density Plot) 密度圖是一種常用工具,用于可視化連續變量的分布。通過“響應”變量對它們進行分組,您可以檢查 X 和 Y 之間的關系。以下情況用于表示目的,以描述城市里程的分布如何隨著汽缸數的變化而變化。 23、直方密度線圖 (Density Curves with Histogram) 帶有直方圖的密度曲線匯集了兩個圖所傳達的集體信息,因此您可以將它們放在一個圖中而不是兩個圖中。 24、Joy Plot Joy Plot允許不同組的密度曲線重疊,這是一種可視化大量分組數據的彼此關系分布的好方法。它看起來很悅目,并清楚地傳達了正確的信息。它可以使用基于 matplotlib 的 joypy 包輕松構建。(需要安裝 joypy 庫) 25、分布式包點圖 (Distributed Dot Plot) 分布式包點圖顯示按組分割的點的單變量分布。點數越暗,該區域的數據點集中度越高。通過對中位數進行不同著色,組的真實定位立即變得明顯。 26、箱形圖 (Box Plot) 箱形圖是一種可視化分布的好方法,記住中位數、第25個第45個四分位數和異常值。但是,您需要注意解釋可能會扭曲該組中包含的點數的框的大小。因此,手動提供每個框中的觀察數量可以幫助克服這個缺點。 例如,左邊的前兩個框具有相同大小的框,即使它們的值分別是5和47。因此,寫入該組中的觀察數量是必要的。 27、包點+箱形圖 (Dot + Box Plot) 包點+箱形圖 (Dot + Box Plot)傳達類似于分組的箱形圖信息。此外,這些點可以了解每組中有多少數據點。 28、小提琴圖 (Violin Plot) 小提琴圖是箱形圖在視覺上令人愉悅的替代品。小提琴的形狀或面積取決于它所持有的觀察次數。但是,小提琴圖可能更難以閱讀,并且在專業設置中不常用。 29、人口金字塔 (Population Pyramid) 人口金字塔可用于顯示由數量排序的組的分布。或者它也可以用于顯示人口的逐級過濾,因為它在下面用于顯示有多少人通過營銷渠道的每個階段。 30、分類圖 (Categorical Plots) 由 seaborn庫 提供的分類圖可用于可視化彼此相關的2個或更多分類變量的計數分布。 31、華夫餅圖 (Waffle Chart) 可以使用 pywaffle包 創建華夫餅圖,并用于顯示更大群體中的組的組成。(需要安裝 pywaffle 庫) 32、餅圖 (Pie Chart) 餅圖是顯示組成的經典方式。然而,現在通常不建議使用它,因為餡餅部分的面積有時會變得誤導。因此,如果您要使用餅圖,強烈建議明確記下餅圖每個部分的百分比或數字。 33、樹形圖 (Treemap) 樹形圖類似于餅圖,它可以更好地完成工作而不會誤導每個組的貢獻。(需要安裝 squarify 庫) 34、條形圖 (Bar Chart) 條形圖是基于計數或任何給定指標可視化項目的經典方式。在下面的圖表中,我為每個項目使用了不同的顏色,但您通常可能希望為所有項目選擇一種顏色,除非您按組對其進行著色。顏色名稱存儲在下面代碼中的all_colors中。您可以通過在plt.plot()中設置顏色參數來更改條的顏色。 變化 (Change) 35、時間序列圖 (Time Series Plot) 時間序列圖用于顯示給定度量隨時間變化的方式。在這里,您可以看到 1949年 至 1969年間航空客運量的變化情況。 plt.plot('date', 'traffic', data = df):其中前兩項即為df的表頭 36、帶波峰波谷標記的時序圖 (Time Series with Peaks and Troughs Annotated) 下面的時間序列繪制了所有峰值和低谷,并注釋了所選特殊事件的發生。 37、自相關和部分自相關圖 (Autocorrelation (ACF) and Partial Autocorrelation (PACF) Plot) 自相關圖(ACF圖)顯示時間序列與其自身滯后的相關性。每條垂直線(在自相關圖上)表示系列與滯后0之間的滯后之間的相關性。圖中的藍色陰影區域是顯著性水平。那些位于藍線之上的滯后是顯著的滯后。 38、交叉相關圖 (Cross Correlation plot) 交叉相關圖顯示了兩個時間序列相互之間的滯后。 39、時間序列分解圖 (Time Series Decomposition Plot) 時間序列分解圖顯示時間序列分解為趨勢,季節和殘差分量。 40、多個時間序列 (Multiple Time Series) 您可以繪制多個時間序列,在同一圖表上測量相同的值,如下所示。 41、使用輔助 Y 軸來繪制不同范圍的圖形 (Plotting with different scales using secondary Y axis) 如果要顯示在同一時間點測量兩個不同數量的兩個時間序列,則可以在右側的輔助Y軸上再繪制第二個系列。 42、帶有誤差帶的時間序列 (Time Series with Error Bands) 如果您有一個時間序列數據集,每個時間點(日期/時間戳)有多個觀測值,則可以構建帶有誤差帶的時間序列。您可以在下面看到一些基于每天不同時間訂單的示例。另一個關于45天持續到達的訂單數量的例子。 在該方法中,訂單數量的平均值由白線表示。并且計算95%置信區間并圍繞均值繪制。 43、堆積面積圖 (Stacked Area Chart) 堆積面積圖可以直觀地顯示多個時間序列的貢獻程度,因此很容易相互比較。 44、未堆積的面積圖 (Area Chart UnStacked) 未堆積面積圖用于可視化兩個或更多個系列相對于彼此的進度(起伏)。在下面的圖表中,您可以清楚地看到隨著失業中位數持續時間的增加,個人儲蓄率會下降。未堆積面積圖表很好地展示了這種現象。 45、日歷熱力圖 (Calendar Heat Map) 與時間序列相比,日歷地圖是可視化基于時間的數據的備選和不太優選的選項。雖然可以在視覺上吸引人,但數值并不十分明顯。然而,它可以很好地描繪極端值和假日效果。(需要安裝 calmap 庫) 46、季節圖 (Seasonal Plot) 季節圖可用于比較上一季中同一天(年/月/周等)的時間序列。 47、樹狀圖 (Dendrogram) 樹形圖基于給定的距離度量將相似的點組合在一起,并基于點的相似性將它們組織在樹狀鏈接中。 48、簇狀圖 (Cluster Plot) 簇狀圖 (Cluster Plot)可用于劃分屬于同一群集的點。下面是根據USArrests數據集將美國各州分為5組的代表性示例。此圖使用“謀殺”和“攻擊”列作為X和Y軸。或者,您可以將第一個到主要組件用作X軸和Y軸。 49、安德魯斯曲線 (Andrews Curve) 安德魯斯曲線有助于可視化是否存在基于給定分組的數字特征的固有分組。如果要素(數據集中的列)無法區分組(cyl),那么這些線將不會很好地隔離,如下所示。 50、平行坐標 (Parallel Coordinates) 平行坐標有助于可視化特征是否有助于有效地隔離組。如果實現隔離,則該特征可能在預測該組時非常有用。 內容來源:和鯨社區,僅用于學術分享,著作權歸作者所有。如有侵權,請聯系后臺作刪文處理。 |
|