標籤:

數據可視化-學習記錄(持續更新.........)

seanborn

barplot 條形圖:

利用矩陣條的高度反映數值變數的集中趨勢,以及使用 errorbar 功能(差棒圖)來估計變數之間的差值統計。請謹記 bar plot 展示的是某種變數分布的平均值,當需要精確觀察每類變數的分布趨勢,boxplot 與 violinplot 往往是更好的選擇。

參數如下

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, ax=None, estimator=<function mean>,**kwargs)

x, y, hue,x,y變數,當指定hue後,畫出的圖的y值是根據hue變數所區分開的y值,

order, hue_order: 控制變數繪圖的順序

data 數據集,當你設定x,y,hue為columns名字後,那麼data就必須給定,如果給x,y,hue直接是columns 下的數據,那麼data可以不給定

estimator 設置對每類變數的計算函數,默認為平均值,可修改為 max、median、max 等

ax: matplotlib Axes, 設置子圖位置,將在下節介紹繪圖基礎,plt定義多個subplots後,指定seaborn這個參數後,seaborn的圖就會放到subplots指定的位置

orient: 「v」 | 「h」, 控制繪圖的方向,水平或者豎直

countplot 計數圖

seaborn.countplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, orient=None, color=None, palette=None, saturation=0.75, ax=None, **kwargs)

import seaborn as snsimport matplotlib.pyplot as plttips = sns.load_dataset(tips)sns.barplot(x = day,y = total_bill, data=tips)plt.show()

如果指定hue這個參數,那麼y值就會根據hue變數進行劃分(為了好理解,沒有hue 參數化,y是根據x進行劃分,加入hue後y是根據x和hue進行劃分)

sns.barplot(x = day,y = total_bill,hue = sex ,data=tips)plt.show()

注意上述y軸顯示的是mean均值,所以barplot反映某種變數分布的平均值,可以通過estimator參數去指定這個,

sns.countplot(x = day,hue = sex ,data=tips)plt.show()

seaborn.distplot

seaborn.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)

畫出單變數分布圖,通過設定{hist, kde, rug, fit}_kws ,這幾個參數可以畫出單變數了的分布,kde(kernel density estimation)(默認)會比較多

vertical,坐標有x-y,變為y-x

x = np.random.randn(100)sns.distplot(x)plt.show()//Show a default plot with a kernel density estimate and histogram // with bin size determined automatically with a reference rule:

// Plot the distribution with a histogram and maximum // ikelihood gaussian distribution fit:from scipy.stats import normsns.distplot(x, fit=norm, kde=False)plt.show()

seaborn.violinplot

seaborn.violinplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, bw=scott, cut=2, scale=area, scale_hue=True, gridsize=100, width_=0.8, inner=box, split=False, dodge=True, orient=None, linewidth_=None, color=None, palette=None, saturation=0.75, ax=None, **kwargs)

Draw a combination of boxplot and kernel density estimate.

畫出箱行圖和kde估計結合圖

sns.violinplot(x = tips[total_bill])plt.show()# Draw a single horizontal violinplot:# 單變數分布

sns.violinplot(x= day,y = total_bill, data=tips)plt.show()# Draw a vertical violinplot grouped by a categorical variable:# y在x上的分布估計

# Draw a violinplot with nested grouping by two categorical variables:# y 在x和hue上的分布sns.violinplot(x = day,y = total_bill,hue=smoker,data=tips,)plt.show()

# Draw a violinplot with nested grouping by two categorical variables:# 指定 split=True 參數可以出現如下的分布圖,看著更加直觀sns.violinplot(x = day,y = total_bill,hue=smoker,data=tips,split=True)plt.show()

數據處理中去掉異常值的方法(去掉異常值會是的數據的分布更加的合理,不skew)

numpy.percentile

numpy.percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation=linear, keepdims=False)

使用的時候,將單變數數據傳給a參數,q指定的是百分比,返回的是在a數據下,百分比大小那個值是多少。

a = np.array([[10, 7, 4], [3, 2, 1]])np.percentile(a, 50)# 輸出 -> 3.5# 也就是上述舉證元素中百分之50的數值大小是多大,# 然後通過以下代碼就可以將異常值取出掉llimit = np.percentile(train_df.longitude.values, 1) # 1%的值是多大,也就是下限值ulimit = np.percentile(train_df.longitude.values, 99)# 99% 的值多大,也就是計算個上限值train_df[longitude].ix[train_df[longitude]<llimit] = llimit# 小於下限制的值全部設置為下限制train_df[longitude].ix[train_df[longitude]>ulimit] = ulimit# 大於上限值的值全部設置為上限值

推薦閱讀:

預測:國內可視化數據分析工具2018功能趨勢
爬蟲與反爬蟲 | 土法破解字元映射反爬策略及高頻詞可視化
淺談 BI 與數據分析的可視化
《OurwayBI使用技巧之神奇的聯動與鑽取》精彩回顧
Seaborn入門系列(三)——boxplot和violinplot

TAG:數據可視化 |