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