Python数据可视化-seaborn「建议收藏」

Python数据可视化-seaborn「建议收藏」详细介绍可以看seaborn官方API和examplegaller。常用颜色:常用样式:1set_style()set()set_style()是用来设置主题的,Seaborn有五

大家好,又见面了,我是你们的朋友全栈君。

详细介绍可以看seaborn官方APIexample galler

常用颜色:

Python数据可视化-seaborn「建议收藏」Python数据可视化-seaborn「建议收藏」

常用样式:

Python数据可视化-seaborn「建议收藏」Python数据可视化-seaborn「建议收藏」Python数据可视化-seaborn「建议收藏」

1  set_style( )  set( )

set_style( )是用来设置主题的,Seaborn有五个预设好的主题: darkgrid , whitegrid , dark , white ,和 ticks  默认: darkgrid

  1. import matplotlib.pyplot as plt  
  2. import seaborn as sns  
  3. sns.set_style(“whitegrid”)  
  4. plt.plot(np.arange(10))  
  5. plt.show()  

Python数据可视化-seaborn「建议收藏」

set( )通过设置参数可以用来设置背景,调色板等,更加常用。
  1. import seaborn as sns  
  2. import matplotlib.pyplot as plt  
  3. sns.set(style=“white”, palette=“muted”, color_codes=True)     #set( )设置主题,调色板更常用  
  4. plt.plot(np.arange(10))  
  5. plt.show()  

2  distplot( )  kdeplot( )

distplot( )为hist加强版,kdeplot( )为密度曲线图 
  1. import matplotlib.pyplot as plt  
  2. import seaborn as sns  
  3. df_iris = pd.read_csv(‘../input/iris.csv’)  
  4. fig, axes = plt.subplots(1,2)  
  5. sns.distplot(df_iris[‘petal length’], ax = axes[0], kde = True, rug = True)        # kde 密度曲线  rug 边际毛毯  
  6. sns.kdeplot(df_iris[‘petal length’], ax = axes[1], shade=True)                     # shade  阴影                         
  7. plt.show()  
Python数据可视化-seaborn「建议收藏」
  1. import numpy as np  
  2. import seaborn as sns  
  3. import matplotlib.pyplot as plt  
  4. sns.set( palette=“muted”, color_codes=True)  
  5. rs = np.random.RandomState(10)  
  6. d = rs.normal(size=100)  
  7. f, axes = plt.subplots(2, 2, figsize=(7, 7), sharex=True)  
  8. sns.distplot(d, kde=False, color=“b”, ax=axes[0, 0])  
  9. sns.distplot(d, hist=False, rug=True, color=“r”, ax=axes[0, 1])  
  10. sns.distplot(d, hist=False, color=“g”, kde_kws={“shade”: True}, ax=axes[1, 0])  
  11. sns.distplot(d, color=“m”, ax=axes[1, 1])  
  12. plt.show()  

Python数据可视化-seaborn「建议收藏」

3  箱型图 boxplot( )

  1. import matplotlib.pyplot as plt  
  2. import seaborn as sns  
  3. df_iris = pd.read_csv(‘../input/iris.csv’)  
  4. sns.boxplot(x = df_iris[‘class’],y = df_iris[‘sepal width’])  
  5. plt.show()  
Python数据可视化-seaborn「建议收藏」
plt.rc('font',family='SimHei',size=13)
#fliersize=1将异常点虚化,showmeans=True显示平均值,order表示按x轴显示进行排序 sns.boxplot(x
='is_overdue',y='gjj_loan_balance',hue='education',hue_order=['HighSchool','Colege','University','Master','other'],data=df,showmeans=True,fliersize=1,order=['0','1-15','15-30','30-45','45+']) plt.legend(loc='upper right')#图示靠右显示 plt.show

Python数据可视化-seaborn「建议收藏」

4  联合分布jointplot( )

  1. tips = pd.read_csv(‘../input/tips.csv’)   #右上角显示相关系数  
  2. sns.jointplot(“total_bill”, “tip”, tips)  
  3. plt.show()  
Python数据可视化-seaborn「建议收藏」
 

  1. tips = pd.read_csv(‘../input/tips.csv’)  
  2. sns.jointplot(“total_bill”, “tip”, tips, kind=‘reg’)       
  3. plt.show()  

Python数据可视化-seaborn「建议收藏」

5  热点图heatmap( )

 internal_chars = [‘full_sq’, ‘life_sq’, ‘floor’, ‘max_floor’, ‘build_year’, ‘num_room’, ‘kitch_sq’, ‘state’, ‘price_doc’]
corrmat = train[internal_chars].corr()

f, ax = plt.subplots(figsize=(10, 7))
plt.xticks(rotation=’90’)
sns.heatmap(corrmat, square=True, linewidths=.5, annot=True)
plt.show()

 

Python数据可视化-seaborn「建议收藏」
 
6  散点图scatter( )
f, ax = plt.subplots(figsize=(10, 7))

plt.scatter(x=train[‘full_sq’], y=train[‘price_doc’], c=’r’)

plt.xlim(0,500)

plt.show()

 Python数据可视化-seaborn「建议收藏」

Seaborn画散点图,以类别型的变量画散点图为例子:

sns.stripplot(x=“day”, y=“total_bill”, data=tips)

Python数据可视化-seaborn「建议收藏」

 

散射点通常会重叠。这使得我们很难看到完整的数据分布。一个简单的解决方法是使用一些随机的“抖动”来调整位置。

jitter参数说明:抖动量(仅沿类别的轴方向)。有许多点并且它们重叠时,很有用,更容易看到分布。可以指定抖动量(统一随机变量支持宽度的一半),或者只使用True作为良好的默认值

sns.stripplot(x=“day”, y=“total_bill”,jitter=True, data=tips)

Python数据可视化-seaborn「建议收藏」

 

也可使用 swarmplot(),避免散点重叠带分布的散点图

sns.swarmplot(x=“day”, y=“total_bill”, data=tips)

Python数据可视化-seaborn「建议收藏」

 

使用hue参数添加一个分类变量

sns.swarmplot(x=“day”, y=“total_bill”,hue=’sex’, data=tips)

Python数据可视化-seaborn「建议收藏」

7.pointplot画出变量间的关系

grouped_df = train_df.groupby(‘floor’)[‘price_doc’].aggregate(np.median).reset_index()

plt.figure(figsize=(12,8))

sns.pointplot(grouped_df.floor.values, grouped_df.price_doc.values, alpha=0.8, color=color[2])

plt.ylabel(‘Median Price’, fontsize=12)

plt.xlabel(‘Floor number’, fontsize=12)

plt.xticks(rotation=’vertical’) plt.show()

Python数据可视化-seaborn「建议收藏」

8 pairplot( )

  1. import seaborn as sns  
  2. import matplotlib.pyplot as plt  
  3. iris = pd.read_csv(‘../input/iris.csv’)  
  4. sns.pairplot(iris, vars=[“sepal width”, “sepal length”],hue=‘class’,palette=“husl”)    
  5. plt.show()  
Python数据可视化-seaborn「建议收藏」
 

9  FacetGrid( )

facetGrid可以根据类别特征各种不同组合进行显示,下面就是根据婚姻与学历情况进行分成了10组,横(row)的表示按婚姻分类显示,竖(col)的表示按学历分类显示
grid=sns.FacetGrid(df,row='martial_status',col='education',palette='seismic',size=4)
grid.map(plt.scatter,'gjj_loan_balance','max_overduer_days')
grid.add_legend()
plt.show()

 

Python数据可视化-seaborn「建议收藏」

 

10  barplot( )

f, ax=plt.subplots(figsize=(12,20))

#orient=’h’表示是水平展示的,alpha表示颜色的深浅程度
sns.barplot(y=group_df.sub_area.values, x=group_df.price_doc.values,orient=’h’, alpha=0.8, color=’red’)

#设置y轴、X轴的坐标名字与字体大小
plt.ylabel(‘price_doc’, fontsize=16)
plt.xlabel(‘sub_area’, fontsize=16)

#设置X轴的各列下标字体是水平的
plt.xticks(rotation=’horizontal’)

#设置Y轴下标的字体大小
plt.yticks(fontsize=15)
plt.show()

注:如果orient=’v’表示成竖直显示的话,一定要记得y=group_df.sub_area.values, x=group_df.price_doc.values调换一下坐标轴,否则报错

Python数据可视化-seaborn「建议收藏」
 

f, ax=plt.subplots(figsize=(12,20))
sns.barplot(y=’area’, x=’fre’,data=df_idcard_city,orient=’h’, color=’red’)
plt.ylabel(‘地域’, fontsize=16)
plt.xlabel(‘频数’, fontsize=16)
plt.xticks(rotation=’horizontal’)
plt.yticks(fontsize=15)
plt.show()

 
Python数据可视化-seaborn「建议收藏」

 

sns.barplot(x="day", y="tip", data=tips, estimator=median)
estimator:表示生成柱状图要调用的函数,同一个x的值是取中位数,还是mean,sum,或者计数(计数的话就等于countplot)
有多种函数可以调用:np.median,np.mean,np.sum,np.count_nonzero(计数)
hue:分组统计

 

Python数据可视化-seaborn「建议收藏」

11.countplot () 计数并画成柱状图

sns.countplot(x=“deck”, data=titanic, palette=”Greens_d”)

Python数据可视化-seaborn「建议收藏」

 

也可以加hue参数再分类计数。

12、sns.relplot() 

 可视化统计量间的关系(relationship),可以绘制出曲线图,也可以绘制出散点图。

Python数据可视化-seaborn「建议收藏」

 默认是散点图

sns.relplot(x=’total_bill’, y=’tip’, data=tips)

 Python数据可视化-seaborn「建议收藏」

sns.relplot(x=’total_bill’, y=’tip’,  data=tips, hue=’sex’)

Python数据可视化-seaborn「建议收藏」

 

#style表示显示的形状,形状上和hue分别区分显示

sns.relplot(x=’total_bill’, y=’tip’,  data=tips, hue=’size’,style=’sex’)

Python数据可视化-seaborn「建议收藏」

 

#用size参数显示大小

sns.relplot(x=’total_bill’, y=’tip’, data=tips, hue=’sex’, size=’size’)

Python数据可视化-seaborn「建议收藏」

 

显示曲线图

Python数据可视化-seaborn「建议收藏」

sns.relplot(x=”timepoint”, y=”signal”, data=fmri, kind=”line”,ci=’sd’) #ci用来控制显示聚合的阴影,不显示则为None即可。

Python数据可视化-seaborn「建议收藏」

 

sns.relplot(x=”timepoint”, y=”signal”, data=fmri, kind=”line”,hue=”event”)

Python数据可视化-seaborn「建议收藏」

sns.relplot(x=”timepoint”, y=”signal”, style=”region”, kind=”line”, data=fmri)

Python数据可视化-seaborn「建议收藏」

 

sns.relplot(x=’timepoint’, y=’signal’, hue=’subject’, col=’region’, row=’event’, height=3, kind=’line’, estimator=None, data=fmri)

Python数据可视化-seaborn「建议收藏」

参考:https://blog.csdn.net/u013317445/article/details/88175366

 

13、分面网格分类图

sns.catplot(x=‘day’, y=‘tip’, hue=‘sex’, col=‘time’, data=tips)

Python数据可视化-seaborn「建议收藏」

 

sns.catplot(x=‘day’, y=‘tip’, hue=‘sex’, col=‘time’, kind =‘violin’, data=tips)

Python数据可视化-seaborn「建议收藏」

sns.catplot(x=‘day’, y=‘tip’, hue=‘sex’, col=‘time’, row=‘smoker’, data=tips)

Python数据可视化-seaborn「建议收藏」

 

sns.catplot(x=‘day’, y=‘tip’, hue=‘sex’, col=‘size’, kind=“bar”, data=tips)

Python数据可视化-seaborn「建议收藏」

 

其它图

bar图

import matplotlib.pyplot as plt
import numpy as np
plt.rc(‘font’, family=’SimHei’, size=13)

num = np.array([13325, 9403, 9227, 8651])
ratio = np.array([0.75, 0.76, 0.72, 0.75])
men = num * ratio
women = num * (1-ratio)
x = [‘聊天’,’支付’,’团购\n优惠券’,’在线视频’]

width = 0.5
idx = np.arange(len(x))
plt.bar(idx, men, width, color=’red’, label=’男性用户’)
plt.bar(idx, women, width, bottom=men, color=’yellow’, label=’女性用户’)  #这一块可是设置bottom,top,如果是水平放置的,可以设置right或者left。
plt.xlabel(‘应用类别’)
plt.ylabel(‘男女分布’)
plt.xticks(idx+width/2, x, rotation=40)

#bar图上显示数字

for a,b in zip(idx,men):

    plt.text(a, b+0.05, ‘%.0f’ % b, ha=’center’, va= ‘bottom’,fontsize=12)
for a,b,c in zip(idx,women,men):
    plt.text(a, b+c+0.5, ‘%.0f’ % b, ha=’center’, va= ‘bottom’,fontsize=12)

plt.legend()
plt.show()

Python数据可视化-seaborn「建议收藏」

 

 双Y轴绘图

 本例主要用dataframe的两个列进行双Y轴画图

eng_name,chn_name,GDP,rate
a, 中国,100,0.6
b,美国,180,0.3
c,日本,80,0.2
d,瑞典,65,0.15
f,荷兰,56,0.23

 

#读取的时候,讲索引列变为chn_name,这样画图时候X轴自动为索引
df=pd.read_csv('b.csv',index_col='chn_name') df.index.name='国家'#这样x轴的label就变成‘国家了’。
plt.rc(
'font', family='SimHei', size=13) plt.figure() df['GDP'].plot(kind='bar') plt.ylabel('GDP') plt.title('国家发展情况对比') p = df['rate'] p.plot(color='black',secondary_y=True,style='--o',linewidth=2) #style--表示虚线,-表示实线 plt.ylabel('增长速度')

 x=[0,1,2,3,4]#因为x轴是汉字,所以默认对应的数值是从0开始的
 for a,b in zip(x,p):
  plt.text(a+0.1, b+0.02, ‘%.2f’ % b, ha=’center’, va= ‘bottom’,fontsize=12)

Python数据可视化-seaborn「建议收藏」

 

education=df.education.value_counts()
df_education=pd.DataFrame({'education':education.index[1:],'fre':education.values[1:]})
df_education.index=df_education.education
plt.figure()  
df_education.fre.plot(kind='bar')  
plt.ylabel('人数')
plt.xlabel('学历') 
plt.title('学历分布情况')
plt.show()

Python数据可视化-seaborn「建议收藏」

 

画饼状图

import numpy as np    
import matplotlib.mlab as mlab    
import matplotlib.pyplot as plt
#根据value_counts()结果画饼图

phone=df.phone_operator.value_counts()
df_phone=pd.DataFrame({‘phone_operator’:phone.index[1:],’fre’:phone.values[1:]})

 

plt.rc(‘font’, family=’SimHei’, size=13)
fig = plt.figure()
plt.pie(df_phone.fre,labels=df_phone.phone_operator,autopct=’%1.2f%%’) #画饼图(数据,数据对应的标签,百分数保留两位小数点)
plt.title(“手机运营商分布”)
plt.show()

 

Python数据可视化-seaborn「建议收藏」

Seaborn画多个子图 

Python数据可视化-seaborn「建议收藏」

 

来源:http://blog.csdn.net/qq_34264472/article/details/53814653

 也可以参考:http://seaborn.pydata.org/tutorial/distributions.html

知乎专栏关于seaborn的:https://zhuanlan.zhihu.com/p/27570774

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/156046.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Windows 手动 修改host文件「建议收藏」

    Windows 手动 修改host文件「建议收藏」在C:\Windows\System32\drivers\etc\目录下有一个hosts文件,复制出来,修改后再粘贴回去(注意:一定要复制出来再修改,否则无法正常保存)

    2022年10月12日
  • arouter实现activity跳转原理

    arouter实现activity跳转原理一、思路分析arouter让我们可以非常简单地实现组件间页面跳转,实现的基本思路是1.在对应的activity上加上注解,通过apt技术来自动生成代码,代码能将activity对应路径和class添加到路由表中;2.通过扫描获取所有类,遍历自动执行步骤1中所生成地代码,从而路由表中有了对应地数据,路由表的数据结构为Map<String,Class<?e…

  • linux配置vscode python_vscode 配置 python

    linux配置vscode python_vscode 配置 python1.安装python2.安装vscode3.vscode安装所需插件1)、插件名称:python;这个是vscode提供的python官方插件,提供了python代码的调试,自动补全,代码格式化等功能。选择一个Python解释器选择一个Python解释器,在VSCode中,通过打开命令选项板(Ctrl+Shift+P)选择Python3解释器,开始键入…

  • JAVA重写和重载的区别「建议收藏」

    JAVA重写和重载的区别「建议收藏」问:Java重载与重写是什么?有什么区别?答:  重载(Overload)是让类以统一的方式处理不同类型数据的一种手段,实质表现就是多个具有不同的参数个数或者类型的同名函数(返回值类型可随意,不能以返回类型作为重载函数的区分标准)同时存在于同一个类中,是一个类中多态性的一种表现(调用方法时通过传递不同参数个数和参数类型来决定具体使用哪个方法的多态性)。图1.Android…

  • kfold交叉验证好处_sklearn交叉验证

    kfold交叉验证好处_sklearn交叉验证运用Kfold交叉验证时,在一个限度内k的值越大越好。因为k越大我们验证的次数就越多,最后取出来的平均数越能代表训练模型的准确度。但是k是需要在一个限度之内的。k太大有两个坏处。1.容易给机器造成过重负担,花费大量时间。2.每一次验证的测试集(或验证集)中数据太少,很难得到准确的误报率。总体而言,k一般取10,取值依不同项目情况而定,当然一定存在k&lt;n(训练集数据条数)。…

  • pycharm 内部环境变量修改

    pycharm 内部环境变量修改今天在在更新adb时,因为换了个新文件夹,在cmd中运行正常,但是在pycharm中adb还是在运行旧位置的adb程序,然后去问了一下同事,发现是因为win系统的环境变量虽然改变了,但是pycharm内部的环境变量未更改,所以导致还是执行的原来的旧程序。下面将记录如何修改pycharm的环境变量。1.点击File-Settings2.点击Tools-Terminal进入如下界面3.点击红框图标查看pycharm环境变量配置…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号