seaborn(1)---画关联图

将 Seaborn 提供的样式声明代码 sns.set() 放置在绘图前,就可以设置图像的样式

sns.set(context='notebook', style='darkgrid', palette='deep', font='sans-serif', font_scale=1, color_codes=False, rc=None)
View Code
  • context= 参数控制着默认的画幅大小,分别有 {paper, notebook, talk, poster} 四个值。其中,poster > talk > notebook > paper。
  • style= 参数控制默认样式,分别有 {darkgrid, whitegrid, dark, white, ticks},你可以自行更改查看它们之间的不同。
  • palette=参数为预设的调色板。分别有 {deep, muted, bright, pastel, dark, colorblind} 等,你可以自行更改查看它们之间的不同。
  • 剩下的 font=用于设置字体,font_scale= 设置字体大小,color_codes= 不使用调色板而采用先前的 'r' 等色彩缩写。

 

seaborn图的分类

  • 关联图
    • replot (relational plots) 关系类图表的接口,其实是下面两种图的集成,通过指定kind参数可以画出下面的两种图
    • 散点图scatterplot
    • 线形图lineplot
  • 类别图
    • catplot 分类图表的接口,其实是下面八种图表的集成,通过指定kind参数可以画出下面的八种图
    • 分类散点图
      • stripplot() (kind="strip")
      • swarmplot() (kind="swarm")
    • 分类分布图
      • boxplot() (kind="box")
      • violinplot() (kind="violin")
      • boxenplot() (kind="boxen")
    • 分类估计图
      • pointplot() (kind="point")
      • barplot() (kind="bar")
      • countplot() (kind="count")
  • 分布图
    • 单变量分布图
      • 直方图,质量估计图 distplot()
      • 核函数密度估计图kdeplot()
    • 双变量关系图
      • 变量关系图jointplot() 
      • 变量关系组图pairplot()
      • 将数组中的数据点绘制为轴上的数据rugplot()
  • 回归图
    • 回归模型图Implot()
    • 线性回归图regplot()
    • 线性回归残差图residplot()
  • 矩阵图组合图
    • 热力图heatmap()
    • 聚集图clustermap()

 

一.关联图

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)
View Code
  • 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)
View Code
  • 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)
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

 

 

 

转载于:https://www.cnblogs.com/nxf-rabbit75/p/10975701.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值