怎么用Python解決數(shù)據(jù)密度過大難題

本篇內(nèi)容介紹了“怎么用Python解決數(shù)據(jù)密度過大難題”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

下陸網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),下陸網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為下陸數(shù)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的下陸做網(wǎng)站的公司定做!

什么是密度圖?

怎么用Python解決數(shù)據(jù)密度過大難題

所謂的密度圖 (Density Plot)  就是數(shù)據(jù)的分布稠密情況,它常用于顯示數(shù)據(jù)在連續(xù)時間段內(nèi)的分布狀況。嚴(yán)格來說,它是由直方圖演變而來,類似于把直方圖進(jìn)行了填充。

一般是使用平滑曲線來繪制數(shù)值水平來觀察分布,峰值數(shù)值位置是該時間段內(nèi)最高度集中的地方。

它比直方圖適用性更強(qiáng),不受分組數(shù)量(直方圖的條形數(shù)量不宜過多)的影響,能更好地界定分布形狀 。

本篇文章不談?wù)撝狈綀D,之后老海會專門總結(jié)關(guān)于直方圖的使用。

什么是2D密度圖?

說完了密度圖和直方圖,它們都是一維數(shù)據(jù)變量。

這下我們來看看2D密度圖,它顯示了數(shù)據(jù)集中兩個定量變量范圍內(nèi)值的分布,有助于避免在散點(diǎn)圖中過度繪制。

如果點(diǎn)太多,則2D密度圖會計算2D空間特定區(qū)域內(nèi)的觀察次數(shù)。

該特定區(qū)域可以是正方形或六邊形(六邊形),還可以估算2D內(nèi)核密度估算值,并用輪廓表示它。

本篇文章主要描述一下2D密度圖的使用。

怎么用Python解決數(shù)據(jù)密度過大難題

2D密度圖的基本數(shù)據(jù)樣式

怎么用Python解決數(shù)據(jù)密度過大難題

2D密度圖的使用建議

  • 密度圖是一種直方圖的代替方案,常用來觀察連續(xù)變量的分布情況

  • 2D密度圖主要用來解決數(shù)據(jù)點(diǎn)密度過大的問題,要注意密度分割是否合理。

  • 當(dāng)數(shù)據(jù)范圍都非常集中,數(shù)據(jù)間變化不大時,密度圖往往很難觀察效果。

下面開始具體的操作案例

準(zhǔn)備工作

還是和之前一樣,引入必要的工具包

怎么用Python解決數(shù)據(jù)密度過大難題
## 初始字體設(shè)置,設(shè)置好可避免很多麻煩 plt.rcParams['font.sans-serif']=['Source Han Sans CN']      # 顯示中文不亂碼,思源黑體  plt.rcParams['font.size'] = 22                              # 設(shè)置圖表全局字體大小,后期某個元素的字體大小可以自行調(diào)整 plt.rcParams['axes.unicode_minus'] = False                  # 顯示負(fù)數(shù)不亂碼 ## 初始化圖表大小 plt.rcParams['figure.figsize'] = (20.0, 8.0)                # 設(shè)置figure_size尺寸 ## 初始化圖表分辨率質(zhì)量 plt.rcParams['savefig.dpi'] = 300                           # 設(shè)置圖表保存時的像素分辨率 plt.rcParams['figure.dpi'] = 300                            # 設(shè)置圖表繪制時的像素分辨率  ## 圖表的顏色自定義 colors = ['#dc2624', '#2b4750', '#45a0a2', '#e87a59',          '#7dcaa9', '#649E7D', '#dc8018', '#C89F91',           '#6c6d6c', '#4f6268', '#c7cccf'] plt.rcParams['axes.prop_cycle'] = plt.cycler( color=colors)  path = 'D:\\系列文章\\' # 自定義文件路徑,可以自行設(shè)定 os.chdir(path) # 設(shè)置為該路徑為工作路徑,一般存放數(shù)據(jù)源文件

設(shè)定圖表樣式和文件路徑

怎么用Python解決數(shù)據(jù)密度過大難題
Financial_data = pd.read_excel('虛擬演示案例數(shù)據(jù).xlsx',sheet_name='二維表') Financial_data

讀入數(shù)據(jù)

怎么用Python解決數(shù)據(jù)密度過大難題
Financial_data = pd.read_excel('虛擬演示案例數(shù)據(jù).xlsx',sheet_name='二維表') Financial_data

常見的6種密度圖表類型

怎么用Python解決數(shù)據(jù)密度過大難題
from scipy.stats import kde  # 引入核密度計算方法   # 為方便演示,創(chuàng)建6個子圖的畫板 fig, axes = plt.subplots(3,2, figsize=(20, 20))  # 第一個子圖,我們來畫一個基本的散點(diǎn)圖 # 散點(diǎn)圖是最經(jīng)典的觀察2個變量關(guān)系,但數(shù)據(jù)量非常大就會出數(shù)據(jù)點(diǎn)堆疊交錯,當(dāng)值我們無法進(jìn)一步探索 axes[0][0].set_title('散點(diǎn)圖')                                           # 設(shè)置標(biāo)題 axes_0 = axes[0][0].plot(Financial_data['材料'], Financial_data['管理'], 'ko')    # 畫出散點(diǎn)圖    # 第二個子圖,我們畫出六邊形蜂巢圖 # 當(dāng)尋找2個數(shù)值型變量的關(guān)系,數(shù)據(jù)量很大且不希望數(shù)據(jù)堆疊在一起,就可以按照蜂巢形狀切割數(shù)據(jù)點(diǎn),計算每個六邊形里的點(diǎn)數(shù)來表達(dá)密度 num_bins = 50                                                      # 設(shè)置六邊形包含的距離 axes[0][1].set_title('蜂巢六邊形圖')                                # 設(shè)置標(biāo)題 axes_1= axes[0][1].hexbin(Financial_data['材料'], Financial_data['管理'],                    gridsize=num_bins,                               # 設(shè)置六邊形的大小                   cmap="Blues"                                     # 設(shè)置顏色組合                  )  fig.colorbar(axes_1,ax=axes[0][1])                                 # 設(shè)置顏色顯示條  # 第三個子圖,我們畫出2D直方圖。 # 我們您需要分析兩個數(shù)據(jù)量比較大的數(shù)值變量關(guān)系時,2D直方圖非常有用,它可以避免在散點(diǎn)圖中出現(xiàn)的的數(shù)據(jù)密度過大問題 num_bins = 50 axes[1][0].set_title('2D 直方圖') axes_2 = axes[1][0].hist2d(Financial_data['材料'], Financial_data['管理'],                    bins=(num_bins,num_bins),                    cmap="Blues")  # fig.colorbar(axes_2,ax=axes[1][0])    # 第四個子圖,我們畫出高斯核密度圖 # 考慮到想研究具有很多點(diǎn)的兩個數(shù)值變量之間的關(guān)系??梢钥紤]繪圖區(qū)域每個部分上的點(diǎn)數(shù),來計算2D內(nèi)核密度估計值。 # 就像平滑的直方圖,這個方法不會使某個點(diǎn)掉入特定的容器中,而是會增加周圍容器的權(quán)重,比如顏色會加深。 k = kde.gaussian_kde(Financial_data.loc[:,['材料','管理']].values.T)           # 進(jìn)行核密度計算 xi, yi = np.mgrid[Financial_data['材料'].min():Financial_data['材料'].max():num_bins*1j, Financial_data['管理'].min():Financial_data['管理'].max():num_bins*1j] zi = k(np.vstack([xi.flatten(), yi.flatten()]))  axes[1][1].set_title('高斯核密度圖') axes_3 = axes[1][1].pcolormesh(xi,                        yi,                        zi.reshape(xi.shape),                        cmap="Blues")  fig.colorbar(axes_3,ax=axes[1][1])                                  # 設(shè)置顏色顯示條  # 第五個子圖,我們畫出帶陰影效果的2D密度圖 axes[2][0].set_title('帶陰影效果的2D密度圖') axes[2][0].pcolormesh(xi,                        yi,                        zi.reshape(xi.shape),                        shading='gouraud',                        cmap="Blues")   # 第六個子圖,我們畫出帶輪廓線的密度圖 axes[2][1].set_title('帶陰影+輪廓線的2D密度圖') axes_5 = axes[2][1].pcolormesh(xi,                        yi,                        zi.reshape(xi.shape),                        shading='gouraud',                        cmap="Blues")  fig.colorbar(axes_5,ax=axes[2][1])                                  # 設(shè)置顏色顯示條  # 畫出輪廓線 axes[2][1].contour(xi,                     yi,                     zi.reshape(xi.shape))  plt.show()

怎么用Python解決數(shù)據(jù)密度過大難題

特別提一下:2D核密度估計圖

怎么用Python解決數(shù)據(jù)密度過大難題
sns.kdeplot(Financial_data['材料'],Financial_data['管理']) sns.despine() # 默認(rèn)無參數(shù)狀態(tài),就是刪除上方和右方的邊框,matplotlib貌似做不到
怎么用Python解決數(shù)據(jù)密度過大難題
sns.kdeplot(Financial_data['材料'],Financial_data['管理'],             cmap="Reds",              shade=True,                                    # 若為True,則在kde曲線下面的區(qū)域中進(jìn)行陰影處理,color控制曲線及陰影的顏色             shade_lowest=True,                        # 如果為True,則屏蔽雙變量KDE圖的最低輪廓。 #             bw=.15            ) sns.despine() # 默認(rèn)無參數(shù)狀態(tài),就是刪除上方和右方的邊框,matplotlib貌似做不到
怎么用Python解決數(shù)據(jù)密度過大難題

“怎么用Python解決數(shù)據(jù)密度過大難題”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

當(dāng)前名稱:怎么用Python解決數(shù)據(jù)密度過大難題
網(wǎng)站鏈接:http://muchs.cn/article4/phoeoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計電子商務(wù)、網(wǎng)站排名企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)