成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

??蘇州程序大白一文從基礎(chǔ)手把手教你Python數(shù)據(jù)可視化大佬??《??記得收藏??》

Drinkey / 1956人閱讀

目錄

????開(kāi)講啦?。。。????蘇州程序大白????

?博主介紹

? 個(gè)人主頁(yè):蘇州程序大白

?作者介紹:中國(guó)DBA聯(lián)盟(ACDU)成員,CSDN全國(guó)各地程序猿(媛)聚集地管理員。目前從事工業(yè)自動(dòng)化軟件開(kāi)發(fā)工作。擅長(zhǎng)C#、Java、機(jī)器視覺(jué)、底層算法等語(yǔ)言。2019年成立柒月軟件工作室。

?如果文章對(duì)你有幫助,歡迎關(guān)注、點(diǎn)贊、收藏(一鍵三連)和C#、Halcon、python+opencv、VUE、各大公司面試等一些訂閱專(zhuān)欄哦

?? 承接各種軟件開(kāi)發(fā)項(xiàng)目

? 有任何問(wèn)題歡迎私信,看到會(huì)及時(shí)回復(fù)

? 微信號(hào):stbsl6,微信公眾號(hào):蘇州程序大白

? 想加入技術(shù)交流群的可以加我好友,群里會(huì)分享學(xué)習(xí)資料

前言

環(huán)境搭建:

下載Anaconda搭建Python環(huán)境。細(xì)講可以看文章

下載類(lèi)庫(kù)Numpy, SciPymatplotlib, pandasseaborn??梢詤⒖?a >本文

引入需要的庫(kù),設(shè)置一下顯示網(wǎng)格的樣式:

import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns

數(shù)據(jù)關(guān)系可視化

下面我們使用seaborn最常用的方法relplot()實(shí)現(xiàn)散點(diǎn)圖scatterplot()和線(xiàn)圖lineplot()。

散點(diǎn)圖 Scatter plots

首先可以引入seaborn中自帶事例子數(shù)據(jù)集“tips”,這個(gè)數(shù)據(jù)集的屬性有:

  • 時(shí)間數(shù)據(jù) week。

  • 賬單: 總消費(fèi),小費(fèi) total_bill, tips。

  • 消費(fèi)者性別 sex。

  • 消費(fèi)者是否抽煙 smoker。

  • 等等…

下面很多例子使用了tips數(shù)據(jù)集,不會(huì)再特別指出

sns.set(style="darkgrid") # 設(shè)置樣式為網(wǎng)格tips = sns.load_dataset("tips")

其實(shí)seaborn中有很多畫(huà)散點(diǎn)圖的方法其中一種是scatterplot(),使用方法是把數(shù)據(jù)集中的集合分配給方法中的屬性,這樣不同集合就會(huì)使用散點(diǎn)圖中不同屬性的樣式展示出來(lái)如下面實(shí)例中的色調(diào)屬性hue獲取了數(shù)據(jù)集中的smoker集合,這樣集合中的數(shù)據(jù)差異就可以通過(guò)色調(diào)的不同展示出來(lái),其他同理。

sns.relplot(x="total_bill", y="tip", size="size",hue="smoker", palette="ch:r=-.5,l=.75",  style="time",sizes=(15, 200), data=tips);


scatterplotrelplot的默認(rèn)方法所以不需要多帶帶設(shè)置,具體屬性可以去scatterplot()的Api查看。

折線(xiàn)圖強(qiáng)調(diào)連續(xù)性 Emphasizing continuity with line plots

relplot里的第二個(gè)方法lineplot,前面說(shuō)過(guò)默認(rèn)方法是scatterplot所以要設(shè)置屬性kind=lineplot啟用折線(xiàn)圖,這個(gè)方法默認(rèn)sort=true將x軸數(shù)據(jù)與y軸數(shù)據(jù)按順序?qū)?yīng)起來(lái)。

fmri = sns.load_dataset("fmri")sns.relplot(x="timepoint",             y="signal",            hue="region",             style="event",            dashes=True, # 開(kāi)啟顯示虛線(xiàn)            markers=True, # 顯示標(biāo)記          	# ci="sd" # 顯示標(biāo)準(zhǔn)偏差,默認(rèn)是顯示置信區(qū)間,None關(guān)閉顯示            kind="line",             data=fmri);

這里我們引入一個(gè)新的fmri數(shù)據(jù)集。

同時(shí)顯示多了圖表

用到relplot的屬性是colcol_wrap自動(dòng)分行,同理也可以用row屬性設(shè)置列。

sns.relplot(x="timepoint", y="signal", hue="event", style="event",            col="subject",             col_wrap=5, # 設(shè)置每行顯示圖表數(shù)量            height=3, # 每個(gè)圖表的高度             kind="line",            data=fmri.query("region == "frontal""));

數(shù)據(jù)種類(lèi)的可視化 Plotting with categorical data

對(duì)數(shù)據(jù)進(jìn)行分類(lèi)可視化用到的方法是catplot(),和數(shù)據(jù)關(guān)系可視化類(lèi)似,catplot()也有多種分類(lèi)(kind),包括散點(diǎn)圖(strip,swarm),分布圖(box,violin,boxen)和柱狀圖(point,bar,count)。

sns.set(style="ticks", color_codes=True) #設(shè)置一下樣式

散點(diǎn)圖 categories scatterplots

除了種類(lèi)外,散點(diǎn)圖能精確的顯示數(shù)據(jù)的分布,散點(diǎn)圖默認(rèn)顯示方式是stript,例如下面的例子。

tips = sns.load_dataset("tips") #載入數(shù)據(jù)sns.catplot(x="day", y="total_bill", data=tips); 

可以發(fā)現(xiàn)上面有些數(shù)據(jù)重疊在一起了,解決這個(gè)問(wèn)題可以使用jitter屬性,也可使用另一種散點(diǎn)圖swarm,它自動(dòng)使用算法區(qū)分出可能重疊的數(shù)據(jù)。需要注意的是可以使用order來(lái)控制順序。下面的例子可以看出:

sns.catplot(x="total_bill", y="day", hue="time", kind="swarm",  order=["Sun", "Sat","Fri","Thur"], data=tips);

分布圖 Distributions of observations within categories

數(shù)據(jù)量太大的時(shí)候,散點(diǎn)圖顯示不同種類(lèi)的分布情況非??植?,所以可以使用分布圖來(lái)觀察不同種類(lèi)數(shù)據(jù)的分布情況,具體代碼就不貼了,只需要更改一下kind屬性就可以了,下面分別看一下box,boxen,violin三種情況不同的顯示風(fēng)格:



其中要重點(diǎn)說(shuō)一下violin方法使用了KDE,因此有一些額外的屬性可以設(shè)置,具體可以查看一下api例如:

sns.catplot(x="total_bill", y="day", hue="sex",bw=.4, cut=2, inner="stick",            kind="violin", split=True, data=tips);

合并圖表

另外看一下如何將兩個(gè)不同類(lèi)型的圖表合為一個(gè),例如下面我們將violinswarm類(lèi)型的圖表在一張圖里展示:

g = sns.catplot(x="day", y="total_bill", kind="violin", inner=None, data=tips)sns.swarmplot(x="day", y="total_bill", color="k", size=3, data=tips, ax=g.ax);

數(shù)據(jù)估計(jì)

很多情況我們是不需要特別精確的數(shù)據(jù)信息的,只需要了解各個(gè)分類(lèi)的走勢(shì)和差異性,這個(gè)時(shí)候柱狀圖bar和點(diǎn)狀圖point可以展示的信息更簡(jiǎn)潔明了。

例如這里我們引入一個(gè)新的數(shù)據(jù)集titanic來(lái)分析一下泰坦尼克號(hào)上不同倉(cāng)位的乘客的生存率

titanic = sns.load_dataset("titanic")

首先下面看一下柱狀圖,這張圖是可以直觀的比較出各個(gè)倉(cāng)位的生存率,需要指出的是柱狀圖的矩形邊框也可以設(shè)置顏色。

sns.catplot(x="class",             y="survived", hue="sex",            palette={"male": "g", "female": "m"}, # 設(shè)置hue屬性顯示的顏色            edgecolor=".6",            kind="bar",             data=titanic);

點(diǎn)狀圖可以設(shè)置的屬性也有很多,比如線(xiàn)的樣式,點(diǎn)的樣式等等

sns.catplot(x="class", y="survived", hue="sex",            palette={"male": "g", "female": "m"},            markers=["^", "o"], linestyles=["-", "--"],            kind="point", data=titanic);

圖表的大小控制

設(shè)置圖表的大小可以使用matplotlib里的plt.subplots(figsize=(width,height))

想要改變圖表各個(gè)軸的精度可以使用set方法參照下面的實(shí)例

g = sns.catplot(x="fare", y="survived", row="class",                kind="box", orient="h", height=1.5, aspect=4,                data=titanic.query("fare > 0"))g.set(xscale="log"); # x軸以對(duì)數(shù)形式顯示

數(shù)據(jù)分布的可視化 Visualizing the distribution of a dataset

拿到數(shù)據(jù)集后,通常第一件事就是確定數(shù)據(jù)的分布,接下來(lái)我們看一下對(duì)于單變量(unvariable)和雙變量(bivariable)分布如何進(jìn)行可視化。

繪制單變量分布圖 Ploting univariate distributions

單變量分布的常見(jiàn)可視化模式是直方圖(histogram)或者KDA(kernel debsity estimate),在seaborn中使用的方法是displot(),其中的hist屬性控制是否顯示直方圖(默認(rèn)開(kāi)啟),kda屬性控制是否顯示KDA分布(默認(rèn)開(kāi)啟),rug屬性控制顯示刻度(默認(rèn)關(guān)閉)。

x = np.random.normal(size=100)sns.distplot(x,hist=True,kde=True, rug=True);

直方圖沒(méi)什么說(shuō)的,是觀察數(shù)據(jù)分布常見(jiàn)且直觀的一個(gè)方法,原理也比較簡(jiǎn)單. 這里重點(diǎn)說(shuō)一下KDE,它本身在很多領(lǐng)域都是極其重要的工具. 繪制kde圖還可以使用kdeplot()方法或者rugplot()方法,例如下面的例子

x = np.random.normal(0, 1, size=30)sns.kdeplot(x)sns.kdeplot(x, shade=True, bw=.2,  label="bw: .2"); # shade屬性控制是否顯示分布區(qū)域陰影sns.kdeplot(x, bw=2, label="bw: 2") plt.legend();


從圖中可以看出,bw屬性控制的是kde曲線(xiàn)的擬合程度。

繪制雙變量分布圖 Ploting bivariate distributions

首先我們創(chuàng)建一個(gè)數(shù)據(jù)集作為例子

mean, cov = [0, 1], [(1, .5), (.5, 1)]data = np.random.multivariate_normal(mean, cov, 200)df = pd.DataFrame(data, columns=["x", "y"])

繪制雙變量分布圖的方法是jointplot(),用多個(gè)面板從兩個(gè)維度繪制數(shù)據(jù)分布,seaborn提供了scatterplot(defult),hexbin,kde三種樣式

sns.jointplot(x="x", y="y", data=df);
x, y = np.random.multivariate_normal(mean, cov, 1000).Twith sns.axes_style("white"):    sns.jointplot(x=x, y=y, kind="hex", color="k");
sns.jointplot(x="x", y="y", data=df, kind="kde");

其實(shí)kdeplot()也可以實(shí)現(xiàn)kde雙變量分布

f, ax = plt.subplots(figsize=(6, 6)) # 設(shè)置顯示圖形的大小sns.kdeplot(df.x, df.y, ax=ax)	sns.rugplot(df.x, color="g", ax=ax)sns.rugplot(df.y, vertical=True, ax=ax);

可視化數(shù)據(jù)集中的成對(duì)關(guān)系 Visualizing pairwise relationships in a dataset

例如調(diào)用數(shù)據(jù)集iris(鳶尾屬植物)

iris = sns.load_dataset("iris")

然后使用pairplot()方法

sns.pairplot(iris, hue="species");

四個(gè)屬性sepal_width sepa_height和petal_length petal_width的對(duì)應(yīng)關(guān)系。

線(xiàn)性關(guān)系的可視化 Visualizing linear relationships

線(xiàn)性回歸模型在數(shù)據(jù)可視化中可以展示數(shù)據(jù)的分布和趨勢(shì),也可以起到預(yù)測(cè)數(shù)據(jù)的作用。我們還是使用小費(fèi)tips數(shù)據(jù)集。

tips = sns.load_dataset("tips")

畫(huà)線(xiàn)性回歸模型的方法 Functions to draw linear regression models

seaborn提供了兩個(gè)方法regplot()lmplot()。

sns.regplot(x="total_bill", y="tip", data=tips);

sns.lmplot(x="total_bill", y="tip", data=tips);

通過(guò)上面兩個(gè)例子 ,會(huì)發(fā)現(xiàn)這兩個(gè)方法繪制的結(jié)果區(qū)別不大,但是他們傳入的數(shù)據(jù)是有區(qū)別的:

  • regplot()xy軸可以是簡(jiǎn)單的numpy數(shù)組,pandas series對(duì)象或者pandas DataFrame對(duì)象。

  • lmplot()的x,y參數(shù)必須指定為字符串。

擬合不同種類(lèi)的數(shù)據(jù) Fitting different kinds of models

anscombe = sns.load_dataset("anscombe")

以數(shù)據(jù)集Anscombe’s quartet(安斯庫(kù)姆四重奏)為例,先通過(guò)下面的表格簡(jiǎn)單了解一下這個(gè)數(shù)據(jù)集,簡(jiǎn)單是說(shuō)就是四組包含的數(shù)據(jù)集:

然后plot一下四組數(shù)據(jù)(注意這里使用lmplot,所以x,y軸對(duì)應(yīng)的是字符串),基本工作流程是使用數(shù)據(jù)集和用于構(gòu)造網(wǎng)格的變量初始化FacetGrid對(duì)象。

sns.lmplot(x="x", y="y", col="dataset", col_wrap=2, data=anscombe,           ci=None,scatter_kws={"s": 80});


現(xiàn)在分析一下這四個(gè)數(shù)據(jù)集,第一個(gè)沒(méi)啥顯著特征,觀察第二個(gè)數(shù)據(jù)集可以發(fā)現(xiàn)它存在高階關(guān)系,可以通過(guò)order屬性控制階數(shù),進(jìn)行多項(xiàng)式回歸擬合

sns.lmplot(x="x", y="y", data=anscombe.query("dataset == "II""),           order=2, ci=None, scatter_kws={"s": 80});

第三個(gè)數(shù)據(jù)集存在一個(gè)噪點(diǎn)outlier影響了擬合效果,可以使用roboust屬性保持健壯性

sns.lmplot(x="x", y="y", data=anscombe.query("dataset == "III""),           robust=True, ci=None, scatter_kws={"s": 80});

?作者相關(guān)的文章、資源分享?

?讓天下沒(méi)有學(xué)不會(huì)的技術(shù)?

學(xué)習(xí)C#不再是難問(wèn)題

?《C#入門(mén)到高級(jí)教程》?

有關(guān)C#實(shí)戰(zhàn)項(xiàng)目

?C#RS232C通訊源碼?

?C#委托數(shù)據(jù)傳輸?

?C# Modbus TCP 源代碼?

?C# 倉(cāng)庫(kù)管理系統(tǒng)源碼?

?C# 歐姆龍通訊Demo?

?C#+WPF+SQL目前在某市上線(xiàn)的車(chē)管所攝像系統(tǒng)?

?2021C#與Halcon視覺(jué)通用的框架?

?2021年視覺(jué)項(xiàng)目中利用C#完成三菱PLC與上位機(jī)的通訊?

?VP聯(lián)合開(kāi)源深度學(xué)習(xí)編程(WPF)?

?有關(guān)C#項(xiàng)目歡迎各位查看個(gè)人主頁(yè)?

?機(jī)器視覺(jué)、深度學(xué)習(xí)?

學(xué)習(xí)機(jī)器視覺(jué)、深度學(xué)習(xí)不再是難問(wèn)題

?《Halcon入門(mén)到精通》?

?《深度學(xué)習(xí)資料與教程》?

有關(guān)機(jī)器視覺(jué)、深度學(xué)習(xí)實(shí)戰(zhàn)

?2021年C#+HALCON視覺(jué)軟件?

?2021年C#+HALCON實(shí)現(xiàn)模板匹配?

?C#集成Halcon的深度學(xué)習(xí)軟件?

?C#集成Halcon的深度學(xué)習(xí)軟件,帶[MNIST例子]數(shù)據(jù)集?

?C#支持等比例縮放拖動(dòng)的halcon WPF開(kāi)源窗體控件?

?2021年Labview聯(lián)合HALCON?

?2021年Labview聯(lián)合Visionpro?

?基于Halcon及VS的動(dòng)車(chē)組制動(dòng)閘片厚度自動(dòng)識(shí)別模塊?

?有關(guān)機(jī)器視覺(jué)、深度學(xué)習(xí)實(shí)戰(zhàn)歡迎各位查看個(gè)人主頁(yè)?

?Java、數(shù)據(jù)庫(kù)教程與項(xiàng)目?

學(xué)習(xí)Java、數(shù)據(jù)庫(kù)教程不再是難問(wèn)題

?《JAVA入門(mén)到高級(jí)教程》?

?《數(shù)據(jù)庫(kù)入門(mén)到高級(jí)教程》?

有關(guān)Java、數(shù)據(jù)庫(kù)項(xiàng)目實(shí)戰(zhàn)

?Java經(jīng)典懷舊小霸王網(wǎng)頁(yè)游戲機(jī)源碼增強(qiáng)版?

?js+css類(lèi)似網(wǎng)頁(yè)版網(wǎng)易音樂(lè)源碼?

?Java物業(yè)管理系統(tǒng)+小程序源碼?

?JavaWeb家居電子商城?

?JAVA酒店客房預(yù)定管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)SQLserver?

?JAVA圖書(shū)管理系統(tǒng)的研究與開(kāi)發(fā)MYSQL?

?有關(guān)Java、數(shù)據(jù)庫(kù)教程與項(xiàng)目實(shí)戰(zhàn)歡迎各位查看個(gè)人主頁(yè)?

?分享Python知識(shí)講解、分享?

學(xué)習(xí)Python不再是難問(wèn)題

?《Python知識(shí)、項(xiàng)目專(zhuān)欄》?

?《Python 檢測(cè)抖音關(guān)注賬號(hào)是否封號(hào)程》?

?《手把手教你Python+Qt5安裝與使用》?

?《用一萬(wàn)字給小白全面講解python編程基礎(chǔ)問(wèn)答》?

?《Python 繪制Android CPU和內(nèi)存增長(zhǎng)曲線(xiàn)》?

有關(guān)Python項(xiàng)目實(shí)戰(zhàn)

?Python基于Django圖書(shū)管理系統(tǒng)?

?Python管理系統(tǒng)?

?2021年9個(gè)常用的python爬蟲(chóng)源碼?

?python二維碼生成器?

?有關(guān)Python教程與項(xiàng)目實(shí)戰(zhàn)歡迎各位查看個(gè)人主頁(yè)?

?分享各大公司面試題、面試流程?

面試成功不是難事

?《2021年金九銀十最新的VUE面試題??《??記得收藏??》》?

?《只要你認(rèn)真看完一萬(wàn)字??Linux操作系統(tǒng)基礎(chǔ)知識(shí)??分分鐘鐘都吊打面試官《??記得收藏??》》?

?《??用一萬(wàn)字給小白全面講解python編程基礎(chǔ)問(wèn)答??《?記得收藏不然看著看著就不見(jiàn)了?》》?

?有關(guān)各大公司面試題、面試流程歡迎各位查看個(gè)人主頁(yè)?


??關(guān)注蘇州程序大白公眾號(hào)??


? ??

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/122021.html

相關(guān)文章

  • ??蘇州程序大白一文教你學(xué)會(huì)微信小程序開(kāi)發(fā)??《??記得收藏??

    ??蘇州程序大白一文教你學(xué)會(huì)微信小程序開(kāi)發(fā)??《??記得收藏??》 目錄 ????開(kāi)講啦?。。?!????蘇州程序大白?????博主介紹?前言?講講專(zhuān)享小程序有什么優(yōu)勢(shì)? ?小程序文件分析?事件綁定?圖片問(wèn)題?輪播圖swiper?自定義組件?生命周期?頁(yè)面生命周期?項(xiàng)目制作?緩沖事件?`es7 async`語(yǔ)法 ?觸底事件??下拉刷新頁(yè)面??css省略號(hào)??預(yù)覽大圖??購(gòu)物車(chē)模擬??獲取地...

    劉明 評(píng)論0 收藏0
  • 一文解析SQLServer數(shù)據(jù)庫(kù)

    摘要:表名列名列名列名值值值刪楷體刪除數(shù)據(jù)是最簡(jiǎn)單的語(yǔ)句了,只需要指定表名和查詢(xún)條件就行。列名統(tǒng)計(jì)當(dāng)前條件下查詢(xún)出的數(shù)據(jù)的數(shù)量。 一文解析SQLServer數(shù)據(jù)庫(kù) 目錄...

    syoya 評(píng)論0 收藏0
  • ??爆肝十二萬(wàn)字《python零到精通教程》,教你大佬??(建議收藏

    文章目錄 強(qiáng)烈推薦系列教程,建議學(xué)起來(lái)!! 一.pycharm下載安裝二.python下載安裝三.pycharm上配置python四.配置鏡像源讓你下載嗖嗖的快4.1pycharm內(nèi)部配置 4.2手動(dòng)添加鏡像源4.3永久配置鏡像源 五.插件安裝(比如漢化?)5.1自動(dòng)補(bǔ)碼神器第一款5.2漢化pycharm5.3其它插件 六.美女背景七.自定義腳本開(kāi)頭八、這個(gè)前言一定要看九、pyt...

    booster 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<