一、分布圖介紹
分布圖(Distribution Plot)是數據可視化中一類常見的圖表。它主要用於顯示單變數或多個變數的分布情況。分布圖可以通過直方圖、核密度圖、箱線圖等形式來展現數據的分布情況。在數據探索和分析中,分布圖是非常重要的工具。
二、直方圖
直方圖是展示單變數分布情況的一種方式。在分布圖中,數據被分成多個等距的區間,然後給出每個區間內數據個數的條形圖。直方圖通常用來觀察數據是否服從正態分布。Python有很多庫可以用來繪製直方圖,其中最常用的是matplotlib和seaborn庫。
1.使用matplotlib繪製直方圖
import matplotlib.pyplot as plt import numpy as np # 生成隨機數據 data = np.random.normal(0, 1, 1000) # 繪製直方圖 plt.hist(data, bins=30, density=True, alpha=0.5) # 添加標題和軸標籤 plt.title('Histogram of Random Data') plt.xlabel('Value') plt.ylabel('Frequency') plt.show()
以上代碼通過numpy庫生成1000個正態分布數據,然後使用matplotlib庫中的hist函數繪製直方圖。bins參數指定數據被分成的區間數量,density參數用于歸一化數據,alpha參數用於設置透明度。最後可以通過添加標題和軸標籤讓圖像更加清晰易懂。
2.使用seaborn繪製直方圖
import seaborn as sns import numpy as np # 生成隨機數據 data = np.random.normal(0, 1, 1000) # 繪製直方圖 sns.histplot(data, kde=True) # 添加標題和軸標籤 plt.title('Histogram of Random Data') plt.xlabel('Value') plt.ylabel('Frequency') plt.show()
以上代碼使用seaborn庫中的histplot函數繪製直方圖,kde參數用於添加核密度估計圖。相比於matplotlib庫,seaborn庫的繪圖風格更為美觀。在實際開發中,可以根據實際需要選擇適合的庫。
三、核密度圖
核密度圖(KDE)是展示單變數或多變數分布情況的一種方式。在分布圖中,每個數據點被視為一個高斯核函數,然後將所有核函數疊加在一起形成一條平滑的曲線。核密度圖通常用來觀察數據是否存在多個峰值,以及峰值的位置和數量。Python中最常用的庫是seaborn和plotly。
1.使用seaborn繪製核密度圖
import seaborn as sns import numpy as np # 生成隨機數據 data = np.random.normal(0, 1, 1000) # 繪製核密度圖 sns.kdeplot(data, shade=True) # 添加標題和軸標籤 plt.title('Kernel Density Plot of Random Data') plt.xlabel('Value') plt.ylabel('Density') plt.show()
以上代碼使用seaborn庫中的kdeplot函數繪製核密度圖,shade參數用於填充曲線下方的區域。通過添加標題和軸標籤,可以使圖像更加美觀易懂。
2.使用plotly繪製核密度圖
import plotly.express as px import numpy as np # 生成隨機數據 data = np.random.normal(0, 1, 1000) # 繪製核密度圖 fig = px.density_contour(data) # 設置圖像布局 fig.update_layout( title='Kernel Density Plot of Random Data', xaxis_title='Value', yaxis_title='Density' ) fig.show()
以上代碼使用plotly庫中的density_contour函數繪製核密度圖。相比於seaborn庫,plotly庫的圖像交互性更強,可以更加方便地進行數據探索和分析。
四、箱線圖
箱線圖(Box Plot)是展示單變數或多變數分布情況的一種方式。在箱線圖中,數據被分成多個組別,每個組別中數據的五個統計量(最小值、最大值、中位數、上四分位數和下四分位數)被展示在盒子中。箱線圖通常用來觀察數據是否存在異常值,以及分析不同組別之間的差異。Python中最常用的庫是matplotlib、seaborn和plotly。
1.使用matplotlib繪製箱線圖
import matplotlib.pyplot as plt import numpy as np # 生成隨機數據 data = [np.random.normal(0, 1, 100) for i in range(5)] # 繪製箱線圖 plt.boxplot(data) # 添加標題和軸標籤 plt.title('Box Plot of Random Data') plt.xlabel('Group') plt.ylabel('Value') plt.show()
以上代碼使用matplotlib庫中的boxplot函數繪製箱線圖。在本例中,我們隨機生成了5組數據,然後使用boxplot函數將這五組數據匯總在一起展示。通過添加標題和軸標籤,可以使圖像更加清晰易懂。
2.使用seaborn繪製箱線圖
import seaborn as sns import numpy as np # 生成隨機數據 data = [np.random.normal(0, 1, 100) for i in range(5)] # 繪製箱線圖 sns.boxplot(data=data) # 添加標題和軸標籤 plt.title('Box Plot of Random Data') plt.xlabel('Group') plt.ylabel('Value') plt.show()
以上代碼使用seaborn庫中的boxplot函數繪製箱線圖。相比於matplotlib庫,seaborn庫的圖像風格更為美觀。可以在實際開發中根據需要選擇適合的庫。
3.使用plotly繪製箱線圖
import plotly.express as px import numpy as np # 生成隨機數據 data = [np.random.normal(0, 1, 100) for i in range(5)] # 繪製箱線圖 fig = px.box(x=np.repeat(['Group'],5), y=np.concatenate(data)) # 設置圖像布局 fig.update_layout( title='Box Plot of Random Data', xaxis_title='Group', yaxis_title='Value' ) fig.show()
以上代碼使用plotly庫中的box函數繪製箱線圖。在本例中,我們將五組數據拼接在一起後傳入box函數進行繪製。相比於其他庫,plotly庫支持更多的圖像交互和定製,可以滿足更加嚴格的數據需求。
原創文章,作者:DRUCE,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/333517.html