數據可視化(3)-Seaborn系列 | 折線圖lineplot()
- 2019 年 10 月 4 日
- 筆記
本篇是《Seaborn系列》文章的第3篇-折線圖。
案例程式碼:歡迎給個star
https://github.com/Vambooo/SeabornCN
折線圖
注意:數據一定是通過DataFrame中傳送的
函數原型
seaborn.lineplot(x=None, y=None, hue=None, size=None, style=None, data=None, palette=None, hue_order=None, hue_norm=None, sizes=None, size_order=None, size_norm=None, dashes=True, markers=None, style_order=None, units=None, estimator='mean', ci=95, n_boot=1000, sort=True, err_style='band', err_kws=None, legend='brief', ax=None, **kwargs)
參數解讀
data:是DataFrame類型的; 可選:下面均為可選 x,y:數據中變數的名稱; hue:數據中變數名稱(比如:二維數據中的列名) 作用:對將要生成不同顏色的線進行分組,可以是分類或數據。 size:數據中變數名稱(比如:二維數據中的列名) 作用:對將要生成不同寬度的線進行分組,可以是分類或數據。 style:數據中變數名稱(比如:二維數據中的列名) 作用:對將生成具有不同破折號、或其他標記的變數進行分組。 palette:調試板名稱,列表或字典類型 作用:設置hue指定的變數的不同級別顏色。 hue_order:列表(list)類型 作用:指定hue變數出現的指定順序,否則他們是根據數據確定的。 hue_norm:tuple或Normalize對象 sizes:list dict或tuple類型 作用:設置線寬度,當其為數字時,它也可以是一個元組,指定要使用的最大和最小值,會自動在該範圍內對其他值進行規範化。 units:對變數識別抽樣單位進行分組,使用時,將為每個單元繪製一個單獨的行。 estimator:pandas方法的名稱或回調函數或者None 作用:用於在同一x水平上聚合y變數的多個觀察值的方法,如果為None,則將繪製所有觀察結果。
案例教程
import pandas as pd import numpy as np import matplotlib.pyplot as plt %matplotlib inline from sklearn.datasets import load_diabetes def fun(x): if x >0: return 1 else: return 0 # sklearn自帶數據 diabetes 糖尿病數據集 diabetes=load_diabetes() data = pd.DataFrame(diabetes.data, columns=diabetes.feature_names) #只抽取前80個數據 df=data[:80] #由於diabetes中的數據均已歸一化處理過,sex列中的值也歸一化,現將其劃分一下,大於0的設置為1,小於等於0的設置為0 df['sex']=df['sex'].apply(lambda x: fun(x)) #展示前5條數據 df[:5]

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns; sns.set() %matplotlib inline from sklearn.datasets import load_diabetes def fun(x): if x >0: return 1 else: return 0 # sklearn自帶數據 diabetes 糖尿病數據集 diabetes=load_diabetes() data = pd.DataFrame(diabetes.data, columns=diabetes.feature_names) #只抽取前80個數據 df=data[:80] #由於diabetes中的數據均已歸一化處理過,sex列中的值也歸一化,現將其劃分一下,大於0的設置為1,小於等於0的設置為0 df['sex']=df['sex'].apply(lambda x: fun(x)) """ 案例1:繪製帶有誤差帶的單線圖,顯示置信區間 """ ax = sns.lineplot(x="age", y="s4",data=df) plt.show()

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns; sns.set() %matplotlib inline from sklearn.datasets import load_diabetes def fun(x): if x >0: return 1 else: return 0 # sklearn自帶數據 diabetes 糖尿病數據集 diabetes=load_diabetes() data = pd.DataFrame(diabetes.data, columns=diabetes.feature_names) #只抽取前80個數據 df=data[:80] #由於diabetes中的數據均已歸一化處理過,sex列中的值也歸一化,現將其劃分一下,大於0的設置為1,小於等於0的設置為0 df['sex']=df['sex'].apply(lambda x: fun(x)) """ 案例2:繪製帶有誤差帶的單線圖,顯示置信區間 """ dd=[df['s1'],df['s2'],df['s3'],df['s4']] ax = sns.lineplot(data=dd) plt.show()

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns; sns.set() %matplotlib inline from sklearn.datasets import load_diabetes def fun(x): if x >0: return 1 else: return 0 # sklearn自帶數據 diabetes 糖尿病數據集 diabetes=load_diabetes() data = pd.DataFrame(diabetes.data, columns=diabetes.feature_names) #只抽取前80個數據 df=data[:80] #由於diabetes中的數據均已歸一化處理過,sex列中的值也歸一化,現將其劃分一下,大於0的設置為1,小於等於0的設置為0 df['sex']=df['sex'].apply(lambda x: fun(x)) """ 案例3:設置hue為sex,按照sex分組,並顯示不同顏色 """ sns.lineplot(x="age", y="s4", hue="sex",data=df) plt.show()

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns; sns.set() %matplotlib inline from sklearn.datasets import load_diabetes def fun(x): if x >0: return 1 else: return 0 # sklearn自帶數據 diabetes 糖尿病數據集 diabetes=load_diabetes() data = pd.DataFrame(diabetes.data, columns=diabetes.feature_names) #只抽取前80個數據 df=data[:80] #由於diabetes中的數據均已歸一化處理過,sex列中的值也歸一化,現將其劃分一下,大於0的設置為1,小於等於0的設置為0 df['sex']=df['sex'].apply(lambda x: fun(x)) """ 案例4:使用顏色和線型顯示分組變數 """ sns.lineplot(x="age", y="s1",hue="sex", style="sex", data=df) plt.show()

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns; sns.set() %matplotlib inline from sklearn.datasets import load_diabetes def fun(x): if x >0: return 1 else: return 0 # sklearn自帶數據 diabetes 糖尿病數據集 diabetes=load_diabetes() data = pd.DataFrame(diabetes.data, columns=diabetes.feature_names) #只抽取前80個數據 df=data[:80] #由於diabetes中的數據均已歸一化處理過,sex列中的值也歸一化,現將其劃分一下,大於0的設置為1,小於等於0的設置為0 df['sex']=df['sex'].apply(lambda x: fun(x)) """ 案例5:使用標記來標識組,而不用破折號來標識組:設置markers為True,設置dashes為False """ sns.lineplot(x="age", y="s1",hue="sex", style="sex", markers=True, dashes=False, data=df) plt.show()

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns; sns.set() %matplotlib inline from sklearn.datasets import load_diabetes def fun(x): if x >0: return 1 else: return 0 # sklearn自帶數據 diabetes 糖尿病數據集 diabetes=load_diabetes() data = pd.DataFrame(diabetes.data, columns=diabetes.feature_names) #只抽取前80個數據 df=data[:80] #由於diabetes中的數據均已歸一化處理過,sex列中的值也歸一化,現將其劃分一下,大於0的設置為1,小於等於0的設置為0 df['sex']=df['sex'].apply(lambda x: fun(x)) """ 案例6:顯示錯誤條,而不顯示錯誤帶 """ sns.lineplot(x="age", y="s5",hue="sex",err_style="bars", ci=68, data=df) plt.show()

import numpy as np import pandas as pd; import matplotlib.pyplot as plt # 構建 時間序列數據 從2000-1-31開始,以月份為間隔,構建100條記錄 index = pd.date_range("1 1 2000", periods=100,freq="m", name="date") data = np.random.randn(100, 4).cumsum(axis=0) # 構建5列數據,列名分別為data a b c d wide_df = pd.DataFrame(data, index, ["a", "b", "c", "d"]) """ 案例7:繪製時間序列數據 """ sns.lineplot(data=wide_df) plt.show()

案例地址
案例程式碼已上傳:Githubhttps://github.com/Vambooo/SeabornCN
整理製作:數據分析與可視化學研社
