1.relplot
它用散點圖和線圖兩種常用的手段來表現統計關系。relplot()使用兩個坐標軸級別的函數來結合了FacetGrid:
- scatterplot():(使用kind="scatter",這是默認參數)
- lineplot():(使用`kind="line")

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)
- size一般接受連續數值型變量,但是我們也可以傳入分類型變量。但是要慎重考慮這種做法,因為這樣比“粗線 vs. 細線”的區分難多了。然而,當數據具有非常高頻的變異性時,我們使用style表現的不同線條樣式會很難區分,這時使用不同的線條寬度就是一個更高效的選擇了
- 使用col(列)和row(行)參數來展示兩個變量的影響。當我們在圖中增加了更多的變量時(會有更多的子圖),我們可能會想要調整圖形的大小。要記住在FacetGrid中,我們用height(子圖高度)和aspect(高寬比)來定制每個子圖的大
- 詳細介紹
- seaborn.relplot
2.scatterplot 散點圖
顯示觀察數據的分布,描述數據的相關性

seaborn.scatterplot(x=None, y=None, hue=None, style=None, size=None, data=None, palette=None, hue_order=None, hue_norm=None, sizes=None, size_order=None, size_norm=None, markers=True, style_order=None, x_bins=None, y_bins=None, units=None, estimator=None, ci=95, n_boot=1000, alpha='auto', x_jitter=None, y_jitter=None, legend='brief', ax=None, **kwargs)
- x,y:輸入的繪圖數據,必須是數值型數據
- hue:對輸入數據進行分組的序列,使用不同顏色對各組的數據加以區分
- size:對輸入數據進行分組的序列,使用不同點尺寸對各組的數據加以區分
- style:對輸入數據進行分組的序列,使用不同點標記對各組的數據加以區分
- data:pandas.DataFrame型參數,不能包含非數值型數據,否則會報錯。使用該參數的好處為下列兩種情況之一
- 第一種情況,快捷的繪制DataFrame內每一列的數據 sns.scatterplot(data=df)
- 第二種情況,輸入繪圖的x,y變量時,可以寫簡單一點 sns.scatterplot('a','b',data=df)
- palette:在對數據進行分組時,設置不同組數據的顯示顏色。hue參數使用的是默認的顏色,如果需要更多的顏色選項,則需要通過調色盤來設置,可以使用seaborn.color_palette()函數來設置顏色
- hue_order:在使用hue參數對數據進行分組時,可以通過該參數設置數據組的顯示順序
- sizes:當使用size參數、以不同尺寸顯示不同組數據時,可以通過sizes參數來設定具體的尺寸大小。該參數可以傳入一個尺寸序列,也可以傳入一個包含兩個元素的元祖,分別制定尺寸的上下限。
- size_order:和hue_order參數作用一樣,不過設置的是尺寸的顯示順序
- markers:當使用style參數、以不同的標記顯示不同組數據時,可以通過該參數設置不同組數據的標記
- 詳細介紹
- seaborn.scatterplot
3.lineplot 折線圖

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)
舉例:

#任務數變化 df_precision_change_tasknum = pd.read_excel('實驗記錄.xlsx', sheet_name='truth discovery(任務數變化)') sns.set(style='ticks') sns.set_context(rc={'lines.linewidth':5}) plt.xlim((19,300.5)) plt.ylim((0.8,1)) plt.xticks(np.arange(20, 301, 40)) plt.yticks([0.80,0.84,0.88,0.92,0.96]) palette = sns.diverging_palette(250, 199, l=40, n=4, center="dark") ax = sns.lineplot(x="tasknum", y="Precision",hue = 'algorithm', data=df_precision_change_tasknum, markers = False,palette = palette,style='algorithm') plt.xlabel('Number of tasks ($n=120$)', fontdict={'color': 'black', 'family': 'Times New Roman','size': 18}) plt.ylabel('precision', fontdict={'color': 'black', 'family': 'Times New Roman', 'size': 18}) plt.legend(['DATE','MV','ED','NC'],prop={'style': 'italic'})#圖例 plt.grid(True) plt.tight_layout() #plt.savefig('local_pic/TD_precision_tasknum.jpg',dpi=600) plt.savefig('loc_svg/TD_precision_tasknum.svg') plt.show()
修改虛線實線:python-如何在seaborn lineplot上繪制虛線? - 堆棧溢出python-如何在seaborn lineplot上繪制虛線? - 堆棧溢出