用seaborn绘制散点图

       散点图可以显示观察数据的分布,描述数据的相关性,matlibplot也可以绘制散点图,不过我一般优先使用seaborn库的sctterplot()绘制,下面就介绍一下如何用seaborn.scatterplot()绘制散点图。

1. sctterplot()参数说明

  • x,y:输入的绘图数据,必须是数值型数据
  • hue:对输入数据进行分组的序列,使用不同颜色对各组的数据加以区分。下面是一个例子
ar=np.random.randn(20,4)
df=pd.DataFrame(a,columns=['a','b','c','d'])
df['e']=pd.Series(['one','one','one','one','one','one','two','two','two','two','two','two','two','two',
                   'three','three','three','three','three','three'])
sns.scatterplot(df['a'],df['b'],hue=df['e'])

                              

  • size:对输入数据进行分组的序列,使用不同点尺寸对各组的数据加以区分。下面是一个例子
#sns.scatterplot(df['a'],df['b'],size=df['e'])  #左图,没有加上hue参数
sns.scatterplot(df['a'],df['b'],hue=df['e'],size=df['e'])  #右图,加上hue参数

    

  • style:对输入数据进行分组的序列,使用不同点标记对各组的数据加以区分。下面是一个例子
sns.scatterplot(df['a'],df['b'],hue=df['e'],size=df['e'],style=df['e']) 

                                    

  • data:pandas.DataFrame型参数,不能包含非数值型数据,否则会报错。使用该参数的好处为下列两种情况之一
#第一种情况,快捷的绘制DataFrame内每一列的数据
sns.scatterplot(data=df)

#第二种情况,输入绘图的x,y变量时,可以写简单一点
sns.scatterplot('a','b',data=df)
  • palette:在对数据进行分组时,设置不同组数据的显示颜色。hue参数使用的是默认的颜色,如果需要更多的颜色选项,则需要通过调色盘来设置,可以使用seaborn.color_palette()函数来设置颜色
  • hue_order:在使用hue参数对数据进行分组时,可以通过该参数设置数据组的显示顺序,例如

 

num=np.random.randn(10,4)
df=pd.DataFrame(num,columns=['a','b','c','d'])
df['e']=pd.Series(list('xxxyyyzzzz'))
sns.scatterplot('a','b',hue=df['e'],data=df,hue_order=['z','y','x'])
  • hue_norm:该参数的作用我暂时没弄明白,先跳过
  • sizes:当使用size参数、以不同尺寸显示不同组数据时,可以通过sizes参数来设定具体的尺寸大小。该参数可以传入一个尺寸序列,也可以传入一个包含两个元素的元祖,分别制定尺寸的上下限。
  • size_order:和hue_order参数作用一样,不过设置的是尺寸的显示顺序
  • size_norm:和hue_norm参数一样,没有弄明白是什么意思
  • markers:当使用style参数、以不同的标记显示不同组数据时,可以通过该参数设置不同组数据的标记
  • style_order:和hue_order参数作用一样,不过设置的是标记的显示顺序
  • {x,y}_bins:没弄明白啥作用
posted @ 2019-05-18 17:03  hgz_dm  阅读(16461)  评论(0编辑  收藏  举报