seaborn关联图---散点线性图replot、散点图scatterplot、线形图lineplot

1.relplot

它用散点图和线图两种常用的手段来表现统计关系。relplot()使用两个坐标轴级别的函数来结合了FacetGrid:

  1. scatterplot():(使用kind="scatter",这是默认参数)
  2. 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)
View Code
  1. size一般接受连续数值型变量,但是我们也可以传入分类型变量。但是要慎重考虑这种做法,因为这样比“粗线 vs. 细线”的区分难多了。然而,当数据具有非常高频的变异性时,我们使用style表现的不同线条样式会很难区分,这时使用不同的线条宽度就是一个更高效的选择了
  2. 使用col(列)和row(行)参数来展示两个变量的影响。当我们在图中增加了更多的变量时(会有更多的子图),我们可能会想要调整图形的大小。要记住在FacetGrid中,我们用height(子图高度)和aspect(高宽比)来定制每个子图的大
  3. 详细介绍
  4. 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)
View Code
  1. x,y:输入的绘图数据,必须是数值型数据
  2. hue:对输入数据进行分组的序列,使用不同颜色对各组的数据加以区分
  3. size:对输入数据进行分组的序列,使用不同点尺寸对各组的数据加以区分
  4. style:对输入数据进行分组的序列,使用不同点标记对各组的数据加以区分
  5. data:pandas.DataFrame型参数,不能包含非数值型数据,否则会报错。使用该参数的好处为下列两种情况之一
    1. 第一种情况,快捷的绘制DataFrame内每一列的数据 sns.scatterplot(data=df)
    2. 第二种情况,输入绘图的x,y变量时,可以写简单一点 sns.scatterplot('a','b',data=df)
  6. palette:在对数据进行分组时,设置不同组数据的显示颜色。hue参数使用的是默认的颜色,如果需要更多的颜色选项,则需要通过调色盘来设置,可以使用seaborn.color_palette()函数来设置颜色
  7. hue_order:在使用hue参数对数据进行分组时,可以通过该参数设置数据组的显示顺序
  8. sizes:当使用size参数、以不同尺寸显示不同组数据时,可以通过sizes参数来设定具体的尺寸大小。该参数可以传入一个尺寸序列,也可以传入一个包含两个元素的元祖,分别制定尺寸的上下限。
  9. size_order:和hue_order参数作用一样,不过设置的是尺寸的显示顺序
  10. markers:当使用style参数、以不同的标记显示不同组数据时,可以通过该参数设置不同组数据的标记
  11. 详细介绍
  12. 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)
View Code

举例:

#任务数变化 
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()
View Code

 

修改虚线实线:python-如何在seaborn lineplot上绘制虚线? - 堆栈溢出python-如何在seaborn lineplot上绘制虚线? - 堆栈溢出

posted @ 2019-06-04 19:42  nxf_rabbit75  阅读(5639)  评论(0编辑  收藏  举报