seaborn关联图---散点线性图replot、散点图scatterplot、线形图lineplot
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上绘制虚线? - 堆栈溢出