日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Seaborn常用绘图函数-sjs

發(fā)布時間:2024/1/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Seaborn常用绘图函数-sjs 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Seaborn常用繪圖函數

    • 介紹
    • 主題風格
    • 函數
    • 參考
    • 備注

介紹

seaborn是基于Matplotlib的Python數據可視化庫。它提供了一個高級界面,用于繪制引人入勝且內容豐富的統(tǒng)計圖形,在Matplotlib上進行了更高級的API封裝,從而使作圖更加容易

主題風格

sns.set_style("whitegrid") 橫坐標有標線,縱坐標沒有標線,背景白色 sns.set_style("darkgrid") 默認,橫縱坐標都有標線,組成一個一個格子,背景稍微深色 sns.set_style("dark") 背景稍微深色,沒有標線線 sns.set_style("white") 背景白色,沒有標線線 sns.set_style("ticks") xy軸都有非常短的小刻度 sns.despine(offset=30,left=True) 去掉上邊和右邊的軸線,offset=30表示距離軸線(x軸)的距離,left=True表示左邊的軸保留

函數

(1): 單變量分布圖 - sns.distplot

sns.distplot(a, bins=None, hist=True, kde=True, rug=False, fit=None, hist_kws=None, kde_kws=None, rug_kws=None, fit_kws=None, color=None, vertical=False, norm_hist=False, axlabel=None, label=None, ax=None)

參數解讀

  • bins:int或list,控制直方圖的劃分
#bins x = np.random.randn(100) #返回100個數 且符合正態(tài)分布 fig,axes=plt.subplots(1,2) sns.distplot(x,kde=False,bins=20,ax=axes[0]) #分成20個區(qū)間 sns.distplot(x,kde=False,bins=[x for x in range(4)],ax=axes[1]) #以0,1,2,3為分割點,形成區(qū)間[0,1],[1,2],[2,3],區(qū)間外的值不計入。

  • 通過hist和kde參數調節(jié)是否顯示直方圖及核密度估計(默認hist,kde均為True)
x = np.random.randn(100) #返回100個數 且符合正態(tài)分布 fig,axes=plt.subplots(1,3) #創(chuàng)建一個1行三列的圖片 sns.distplot(x,ax=axes[0]) sns.distplot(x,hist=False,ax=axes[1]) #不顯示直方圖 sns.distplot(x,kde=False,ax=axes[2]) #不顯示核密度

  • rug:控制是否生成觀測數值的小細條
x = np.random.randn(100) #返回100個數 且符合正態(tài)分布 fig,axes=plt.subplots(1,2) #創(chuàng)建一個1行2列的圖片 sns.distplot(x,rug=True,ax=axes[0]) #左圖 sns.distplot(x,ax=axes[1]) #右圖

  • fit:控制擬合的參數分布圖形,能夠直觀地評估它與觀察數據的對應關系(黑色線條為確定的分布)
x = np.random.randn(100) #返回100個數 且符合正態(tài)分布 # from scipy.stats import * sns.distplot(x,hist=False,fit=norm) #擬合標準正態(tài)分布 黑色線

  • vertical=True,color=“y”:控制圖像的橫豎擺放,圖中顏色顯示
sns.distplot(x,vertical=True,color="y")

  • norm_hist:若為True, 則直方圖高度顯示密度而非計數(含有kde圖像中默認為True)
x = np.random.randn(100) #返回100個數 且符合正態(tài)分布 fig,axes=plt.subplots(1,2) #創(chuàng)建一個1行2列的圖片 sns.distplot(x,norm_hist=True,kde=False,ax=axes[0]) #左圖 sns.distplot(x,kde=False,ax=axes[1]) #右圖

內容解讀:

  • sns.distplot(x) 對單變量X直接繪制出直方圖,并繪制概率擬合曲線
  • Y軸代表概率密度
  • 每個柱子的面積代表概率,面積和=1
  • distplot支持3種格式數據:pandas.series、numpy中的1darray以及普通的list類型

================================================================

(2):雙變量分布圖 散點圖 - serborn.jointplot

serborn.jointplot(x,y,data=None,kind=“scatter”,color=None,size=6,ratio=5,space=0.2,dropna=True,xlim=None,ylim=None,joint_kws=None,marginal_kws=None,annot_kws=None**kwargs)

參數解讀:

sns.jointplot(x=df['A'], y=df['B'], #設置xy軸,顯示columns名稱data = df, #設置數據color = 'b', #設置顏色s = 50, edgecolor = 'w', linewidth = 1,#設置散點大小、邊緣顏色及寬度(只針對scatter)kind = 'scatter',#設置類型:散點圖'scatter' ,'reg','resid',密度圖'kde',六邊形圖'hex'space = 0.1, #設置散點圖和布局圖的間距size = 8, #圖表大小(自動調整為正方形))ratio = 5, #散點圖與布局圖高度比,整型marginal_kws = dict(bins=15, rug =True),) #設置柱狀圖箱數,是否設置rug

舉例:

rs = np.random.RandomState(2) df = pd.DataFrame(rs.randn(200,2), columns = ['A','B']) fig,axes=plt.subplots(3,1) #創(chuàng)建一個1行2列的圖片sns.jointplot(x=df['A'], y=df['B'], #設置xy軸,顯示columns名稱data = df, #設置數據color = 'b', #設置顏色 # s = 50, edgecolor = 'w', linewidth = 1,#設置散點大小、邊緣顏色及寬度(只針對scatter) # stat_func=sci.pearsonr,kind = 'hex',#設置類型:散點圖'scatter' ,'reg','resid',,密度圖'kde',六邊形圖'hex'#stat_func=<function pearsonr>,space = 0.1, #設置散點圖和布局圖的間距size = 8, #圖表大小(自動調整為正方形))ratio = 5, #散點圖與布局圖高度比,整型marginal_kws = dict(bins=15, rug =True),) #設置柱狀圖箱數,是否設置rug

rs = np.random.RandomState(2) df = pd.DataFrame(rs.randn(200,2), columns = ['A','B']) fig,axes=plt.subplots(3,1) #創(chuàng)建一個1行2列的圖片sns.jointplot(x=df['A'], y=df['B'], #設置xy軸,顯示columns名稱data = df, #設置數據color = 'b', #設置顏色s = 50, edgecolor = 'w', linewidth = 1,#設置散點大小、邊緣顏色及寬度(只針對scatter) # stat_func=sci.pearsonr,kind = 'scatter',#設置類型:'scatter','reg','resid','kde','hex'#stat_func=<function pearsonr>,space = 0.1, #設置散點圖和布局圖的間距size = 8, #圖表大小(自動調整為正方形))ratio = 5, #散點圖與布局圖高度比,整型marginal_kws = dict(bins=15, rug =True),) #設置柱狀圖箱數,是否設置rug

=================================================================

(3):雙變量分布圖 曲線圖 - seaborn.relplot

seaborn.relplot(x=None, y=None, hue=None, size=None, style=None, data=None, row=None, col=None, col_wrap=None, row_order=None, col_order=None, palette=None, hue_order=None, hue_norm=None, sizes=None, size_order=None,size_norm=None, markers=None, dashes=None, style_order=None, legend='brief',kind='scatter', height=5, aspect=1, facet_kws=None, **kwargs)

參數解讀:

seaborn.relplot(x=None, y=None, #x, y:data中的變量名 輸入數據的變量;數據必須為數值型。hue=None, #將會產生具有不同顏色的元素的變量進行分組。這些變量可以是類別變量或者數值型變量size=None, #用粗細表現出分組的不同。可以是分組或數字(10, 100)style=None, #cue 虛線 stim實線 也可以是分組data=None, #DataFramerow=None, col=None, #col列分組 row行分組col_wrap=None, #int這個變量設置可以將多列包裝以多行的形式展現(有時太多列展現,不便利),但不可以將多行以多列的形式展現。row_order=None,col_order=None, #以此順序組織網格的行和/或列,否則順序將從數據對象中推斷palette=None, #["b", "r"] 列表格式 對不同分組設定不同顏色hue_order=None, #列表 指定hue變量層級出現的順序 否則會根據數據確定hue_norm=None, #元組或者 Normalize 對象 sizes=None, #列表、字典或者元組 當使用sizes時,用于確定如何選擇尺寸。此變量可以一直是尺寸值的列表或者size變量的字典映射。#當size為數值型時,此變量也可以是指定最小和最大尺寸的元組,這樣可以將其他值標準化到這個范圍size_order=None, #列表 指定size變量層次的表現順序,不指定則會通過數據確定。當size變量為數值型時與此無關size_norm=None, #元組或者 Normalize 對象 當size變量為數值型時,用于數據單元的 scaling plot 對象的標準化legend='brief', #“brief”, “full”, 或者 False, #用于決定如何繪制坐標軸。如果參數值為“brief”, 數值型的hue以及size變量將會被用等間隔采樣值表示。#如果參數值為“full”, 每組都會在坐標軸中被記錄。如果參數值為“false”, 不會添加坐標軸數據,也不會繪制坐標軸。kind='scatter', #可選項為(scatter 散點圖 及l(fā)ine 曲線圖).height=5, #每個 生成圖 的高度aspect=1, #每個 生成圖 的長寬比 )

舉例:

sns.relplot(x="timepoint", y="signal", data=df, kind="line")

================================================================

(4)條形圖 sns.barplot()

countplot參數和barplot基本差不多,可以對比著記憶,有一點不同的是countplot中不能同時輸入x和y,且countplot沒有誤差棒,類別特征barplot要同時傳入x,y

seaborn.barplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, ci=95, n_boot=1000, units=None, orient=None, color=None, palette=None, saturation=0.75, errcolor='.26', errwidth=None, capsize=None, dodge=True, ax=None, **kwargs)

參數解讀:

seaborn.barplot(x=None, y=None, #數據X,Y軸傳值hue=None, #數據分組變量名data=None, #DataFrame,數組或數組列表order=None, hue_order=None, #顯式指定分類順序,order=[字段變量名1,字段變量名2,...]ci=95, #在估計值附近繪制置信區(qū)間的大小n_boot=1000, #計算置信區(qū)間時使用的引導迭代次數orient=None, # 橫v\縱h 圖的顯示方向(垂直或水平,即橫向或縱向)color=None, #顏色palette=None, #調試板名稱,列表或字典類型saturation=0.75, #飽和度:floaterrcolor='.26', #表示置信區(qū)間的線條顏色errwidth=None, #float 表示誤差線的厚度capsize=None, #float 表示誤差線上"帽"的寬度(誤差線上的橫線的寬度)dodge=True, ax=None, **kwargs)

舉例:

sns.barplot(x=df.A, y=df.B,hue=df.C,data=df)

#palette:調色板,控制不同的顏色style fig,axes=plt.subplots(2,1) sns.barplot(x="color",y="age",data=data,ax=axes[0]) #上圖 sns.barplot(x="color",y="age",data=data,palette="Set3",ax=axes[1]) #下圖

#capsize(float): 設置誤差棒帽條(上下兩根橫線)的寬度 fig,axes=plt.subplots(1,2) sns.barplot(x="color",y="age",data=data,ax=axes[0],capsize=.2) #左圖 sns.barplot(x="color",y="age",data=data,ax=axes[1],capsize=.9) #右圖

參考

  • https://seaborn.apachecn.org/#/docs/21

備注

  • 有時作圖時,會有圖片標題中文顯示亂碼的問題,可以使用這行代碼解決:
plt.rc("font",family="SimHei",size="12")
  • 如果X的維度名稱太長可以使用傾斜45度處理
plt.xticks(rotation=45)

總結

以上是生活随笔為你收集整理的Seaborn常用绘图函数-sjs的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。