日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Seaborn可視化進(jìn)階之FacetGrid結(jié)構(gòu)圖

FacetGrid 可以通過(guò) col 和 row 等參數(shù)來(lái)一次性構(gòu)建多個(gè)圖形。

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、做網(wǎng)站、正陽(yáng)網(wǎng)絡(luò)推廣、成都小程序開(kāi)發(fā)、正陽(yáng)網(wǎng)絡(luò)營(yíng)銷、正陽(yáng)企業(yè)策劃、正陽(yáng)品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供正陽(yáng)建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com

relplot 、catplot 、lmplot 等函數(shù)可以通過(guò) col 、row 等在一個(gè) Figure 中繪制多個(gè)圖。這個(gè)函數(shù)之所以有這些功能,是因?yàn)楹瘮?shù)底層使用了 FacetGrid 來(lái)組裝這些圖形。

FacetGrid 繪圖的 x 和 y 參數(shù)必須為 DataFrame 的列的名字。而直接使用 Axes 繪圖,參數(shù)更靈活。

普通的 Axes 繪圖

實(shí)際上 Seaborn 的繪圖函數(shù)中也有大量的直接使用 Axes 進(jìn)行繪圖的,凡是函數(shù)名中已經(jīng)明確顯示了這個(gè)圖的類型,這種圖都是使用 Axes 繪圖的。比如 sns.scatterplot 、sns.lineplot 、 sns.barplot 等。Axes 繪圖可以直接使用之前的 matplotlib 的一些方式設(shè)置圖的元素。

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
tips = pd.read_csv("dataset/tips.csv")
#scatterplot繪圖返回一個(gè)Axes對(duì)象
axes = sns.scatterplot(x="total_bill",y="tip",data=tips)
#利用Axes對(duì)象的函數(shù)設(shè)置一些屬性
axes.set_xticks(range(0,60,5))

fig,[ax1,ax2] = plt.subplots(1,2,figsize=(20,5))
#z繪制散點(diǎn)圖
#ax參數(shù)指定Axes對(duì)象
sns.scatterplot(x="total_bill",y="tip",data=tips,ax=ax1)
#繪制柱狀圖
sns.barplot(x="day",y="total_bill",data=tips,ax=ax2)

#scatterplot的參數(shù)可以為數(shù)組等形式的數(shù)據(jù)
sns.scatterplot(x=tips['total_bill'],y='tip',data=tips)

FacetGrid 基本使用

先創(chuàng)建一個(gè) FacetGrid 對(duì)象,然后再調(diào)用這個(gè)對(duì)象的 map 方法。其中 map 為方法的第一個(gè)參數(shù)是一個(gè)函數(shù),后續(xù) map 將調(diào)用這個(gè)函數(shù)來(lái)繪制圖形。后面的參數(shù)就是傳給這個(gè)函數(shù)的參數(shù)。

其中第一個(gè)參數(shù)是可以繪制 Axes 圖,并且可以接受 color 參數(shù)的函數(shù)??梢匀〉闹等缦拢?/p>

參數(shù)

描述

對(duì)應(yīng)使用了 FacetGrid 函數(shù)

plt.plot / sns.lineplot

繪制折線圖

sns.relplot(kind=“l(fā)ine”)

plt.hexbin

繪制六邊形圖形

sns.jointplot(kind=“hex”)

plt.hist

繪制直方圖

sns.distplot

plt.scatter / sns.scatterplot

繪制散點(diǎn)圖

sns.relplot(kind=“scatter”)

sns.stripplot

繪制分類散點(diǎn)圖

sns.catplot(kind=“strip”

sns.swarmplot

繪制散開(kāi)來(lái)的分類散點(diǎn)圖

sns.catplot(kind=“swarm”)

sns.boxplot

繪制箱線圖

sns.catplot(kind=“box”)

sns.violinplot

繪制小提琴圖

sns.catplot(kind=“violin”)

sns.pointplot

繪制點(diǎn)線圖

sns.catplot(kind=“point”)

sns.barplot

繪制條形圖

sns.catplot(kind=“bar”)

sns.countplot

繪制數(shù)量柱狀圖

sns.catplot(kind=“count”)

sns.regplot

繪制帶有回歸線的散點(diǎn)圖

sns.lmplot

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
tips = pd.read_csv("dataset/tips.csv")
#繪制散點(diǎn)圖
g1 = sns.FacetGrid(tips)
g1.map(plt.scatter,"total_bill","tip")

繪制多個(gè)圖形

FacetGrid 可以通過(guò) col 和 row 參數(shù)在一個(gè) Figure 上繪制多個(gè)圖形,其中 col 和 row 都是數(shù)據(jù)集中的某個(gè)列的名字。只要指定這個(gè)名字,那么就會(huì)自動(dòng)的按照指定列的值的個(gè)數(shù)繪制指定個(gè)數(shù)的圖形。

#繪制多個(gè)圖
g2 = sns.FacetGrid(tips,col="day",col_wrap=2)
g2.map(plt.scatter,"total_bill","tip")

添加顏色觀察字段

可以通過(guò)添加 hue 參數(shù)來(lái)控制每個(gè)圖中元素的顏色來(lái)觀察其他的字段

g2 = sns.FacetGrid(tips,col="day",hue="time")
g2.map(plt.scatter,"total_bill","tip")
#添加圖例
g2.add_legend()

設(shè)置每個(gè)圖形的尺寸

使用 FacetGrid 繪制出圖形后,如果設(shè)置每個(gè)圖形的尺寸或者是寬高比,可以通過(guò)在 FacetGrid 中設(shè)置 height 和 aspect 來(lái)實(shí)現(xiàn),其中 height 表示的是每個(gè)圖形的尺寸(默認(rèn)是寬高一致),aspect 表示的是 寬度/高度 的比例。

g3 = sns.FacetGrid(tips,col="smoker",height=4,aspect=1.5)
g3.map(sns.barplot,"day","total_bill")

設(shè)置圖例

默認(rèn)情況下不會(huì)添加圖例,我們可以通過(guò) g.add_legend() 來(lái)添加圖例。

(1)通過(guò) title 來(lái)控制圖例的標(biāo)題

(2)通過(guò) label_order 來(lái)控制圖例元素的順序

sns.set(rc={"font.sans-serif":"SimHei"})
g2 = sns.FacetGrid(tips,col="day",hue="time")
g2.map(plt.scatter,"total_bill","tip")
#添加圖例
g2.add_legend(title="標(biāo)題",label_order=['Lunch','Dinner'])
new_labels = ['午餐','晚餐']
for text,label in zip(g2._legend.texts,new_labels):
text.set_text(label)

設(shè)置標(biāo)題

設(shè)置標(biāo)題可以通過(guò):

g.set_titles(template=None,
row_template=None,
col_template=None)

來(lái)實(shí)現(xiàn),這三個(gè)參數(shù)分別代表的意義如下:

  1. template:給圖設(shè)置標(biāo)題,其中有 {row_var}:繪制每行圖像的名稱,{row_name}:繪制每行圖像的值,{col_var}:繪制每列圖像的名稱,{col_name}:繪制每列圖像的值
  2. col_template:給圖像設(shè)置列的標(biāo)題,其中有 {col_var} 以及 {col_name} 可以使用
  3. row_template:給圖像設(shè)置行的標(biāo)題,其中有 {row_var} 以及 {row_name} 可以使用
g = sns.FacetGrid(tips,col="day",row="time")
g.map(sns.regplot,"total_bill","tip")
#設(shè)置標(biāo)題為行
#g.set_titles(template="{row_var}/{row_name}")
#設(shè)置標(biāo)題為列
g.set_titles(template="{col_var}/{col_name}標(biāo)題")

設(shè)置坐標(biāo)軸

  1. g.set_axis_labels(x_var,y_var):一次性設(shè)置 x 和 y 的坐標(biāo)的標(biāo)題
  2. g.set_xlabels(label):設(shè)置 x 軸的標(biāo)題
  3. g.set_ylabels(label):設(shè)置 y 軸的標(biāo)題
  4. g.set(xticks,yticks):設(shè)置 x 和 y 軸的刻度
  5. g.set_xticklables(labels):設(shè)置 x 軸的刻度文字
  6. g.set_yticklabels(labels):設(shè)置 y 軸的刻度文字
g = sns.FacetGrid(tips,col="day",row="time")
g.map(sns.scatterplot,"total_bill","tip")
#一次性設(shè)置 x 和 y 的坐標(biāo)的標(biāo)題
g.set_axis_labels('消費(fèi)金額','小費(fèi)')
g.set(facecolor='y')
#設(shè)置 x 軸的刻度和刻度文字
g.set(xticks=range(0,50,5),xticklabels=["$%d"%x for x in range(0,50,5)])

g.set 方法

g.set 方法可以對(duì) FacetGrid 下的每個(gè)子圖 Axes 設(shè)置屬性。其中可以設(shè)置的參數(shù)完全是根據(jù) Axes 的屬性來(lái)的。比如可以設(shè)置每個(gè) Axes 的 facecolor 等。詳情可查詢 matplotlib.Axes官方文檔

g.set(facecolor='y')
#設(shè)置 x 軸的刻度和刻度文字
g.set(xticks=range(0,50,5),xticklabels=["$%d"%x for x in range(0,50,5)])

g.fig 方法

通過(guò) g.fig 可以獲取到當(dāng)前的 Figure 對(duì)象,然后通過(guò) Figure 對(duì)象再可以設(shè)置其他屬性,比如 dip 等。

g = sns.FacetGrid(tips,col="day",row="time")
g.map(sns.scatterplot,"total_bill","tip")
#設(shè)置分辨率
g.fig.set_dpi(100)

網(wǎng)頁(yè)標(biāo)題:Seaborn可視化進(jìn)階之FacetGrid結(jié)構(gòu)圖
分享路徑:http://m.5511xx.com/article/cdohgoi.html