热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python数据可视化-seaborn

zhuanzi:https:www.cnblogs.comgczrp6767175.htmlSeaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图

zhuanzi:https://www.cnblogs.com/gczr/p/6767175.html

 

Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图。这里实例采用的数据集都是seaborn提供的几个经典数据集,dataset文件可见于Github。本博客只总结了一些,方便博主自己查询,详细介绍可以看seaborn官方API和example gallery,官方文档还是写的很好的。

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()  

 
 
set( )通过设置参数可以用来设置背景,调色板等,更加常用。

 

 
  1. import seaborn as sns  
  2. import matplotlib.pyplot as plt  
  3. sns.set(string">"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()  
 
  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()  

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()  

 

 
  1. import matplotlib.pyplot as plt  
  2. import seaborn as sns  
  3. tips = pd.read_csv('../input/tips.csv')  
  4. sns.set(string">"ticks")                                     #设置主题  
  5. sns.boxplot(x="day", y="total_bill", hue="sex", data=tips, palette="PRGn")   #palette 调色板  
  6. plt.show()  

 

 

4  联合分布jointplot( )

 
  1. tips = pd.read_csv('../input/tips.csv')   #右上角显示相关系数  
  2. sns.jointplot("total_bill", "tip", tips)  
  3. plt.show()  
 
  1. tips = pd.read_csv('../input/tips.csv')  
  2. sns.jointplot("total_bill", "tip", tips, kind='reg')       
  3. plt.show()  

 

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()

 

 
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()

 

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()

8 pairplot( )

  1. import matplotlib.pyplot as plt  
  2. import seaborn as sns  
  3. data = pd.read_csv("../input/iris.csv")  
  4. sns.set()                        #使用默认配色  
  5. sns.pairplot(data,hue="class")   #hue 选择分类列  
  6. plt.show()  

 

 
 
  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()  
 

9  FacetGrid( )

  1. import seaborn as sns  
  2. import matplotlib.pyplot as plt  
  3. tips = pd.read_csv('../input/tips.csv')  
  4. g = sns.FacetGrid(tips, col="time",  row="smoker")  
  5. g = g.map(plt.hist, "total_bill",  color="r")  
  6. plt.show()  
 
 

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调换一下坐标轴,否则报错

 

11.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)
plt.legend()
plt.show()

 

 

 

 

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

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

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


推荐阅读
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 文件路径的生成及其在文件操作中的应用
    本文介绍了文件路径的生成方法及其在文件操作中的应用。在进行文件操作时,需要知道文件的具体位置才能打开文件。文件的位置有绝对路径和相对路径之分。绝对路径通常只在特定电脑上有效,不同电脑上的文件存放路径可能不同,导致程序报错。相对路径是解决这个问题的最好方式,它不依赖于文件的具体存放位置,只需要按照统一的规范进行文件存放即可。使用相对路径可以避免冗余和麻烦,特别适用于大项目和团队维护代码的情况。 ... [详细]
  • MySQL多表数据库操作方法及子查询详解
    本文详细介绍了MySQL数据库的多表操作方法,包括增删改和单表查询,同时还解释了子查询的概念和用法。文章通过示例和步骤说明了如何进行数据的插入、删除和更新操作,以及如何执行单表查询和使用聚合函数进行统计。对于需要对MySQL数据库进行操作的读者来说,本文是一个非常实用的参考资料。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 这篇文章主要介绍了Python拼接字符串的七种方式,包括使用%、format()、join()、f-string等方法。每种方法都有其特点和限制,通过本文的介绍可以帮助读者更好地理解和运用字符串拼接的技巧。 ... [详细]
  • Python教学练习二Python1-12练习二一、判断季节用户输入月份,判断这个月是哪个季节?3,4,5月----春 ... [详细]
author-avatar
林禎峰佩蓉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有