基于Python的数据可视化 matplotlib seaborn pandas

转载 2018年04月16日 22:42:56
  1. # 首先载入pandas  
  2. import pandas as pd  
  3.   
  4. # 我们将载入seaborn,但是因为载入时会有警告出现,因此先载入warnings,忽略警告  
  5. import warnings   
  6. warnings.filterwarnings("ignore")  
  7. import seaborn as sns  
  8. import matplotlib.pyplot as plt  
  9. sns.set(style="white", color_codes=True)  
  10.   
  11. # 载入数据  
  12. iris = pd.read_csv("../input/Iris.csv"# 数据现在为 DataFrame格式  
  13.   
  14. # 用head函数看一下数据结构啥样  
  15. iris.head()  
  16.   
  17. <span class="c"></span>  

数据结构就这样:

 IdSepalLengthCmSepalWidthCmPetalLengthCmPetalWidthCmSpecies
015.13.51.40.2Iris-setosa
124.93.01.40.2Iris-setosa
234.73.21.30.2Iris-setosa
344.63.11.50.2Iris-setosa
455.03.61.40.2Iris-setosa

[python] view plain copy
  1. # 让我们用counts功能看下一共有多少种花  
  2. iris["Species"].value_counts()  


结果是:
Iris-setosa        50
Iris-virginica     50
Iris-versicolor    50
Name: Species, dtype: int64
1.


[python] view plain copy
  1. # 使用 .plot 做散点图  
  2. iris.plot(kind="scatter", x="SepalLengthCm", y="SepalWidthCm")#数据为萼片的长和宽 结果如下  

2.

[python] view plain copy
  1. # 开始使用seaborn了它能同时显示直方图噢  
  2. sns.jointplot(x="SepalLengthCm", y="SepalWidthCm", data=iris, size=5)  


3神奇的还在下面:

[python] view plain copy
  1. # 我们还可以用seaborn's FacetGrid 标记不同的种类噢  
  2. sns.FacetGrid(iris, hue="Species", size=5) \  #hue英文是色彩的意思  
  3.    .map(plt.scatter, "SepalLengthCm""SepalWidthCm") \#注意这里的plt哦  
  4.    .add_legend()  


4箱线图!

[python] view plain copy
  1. #  Seaborn中的boxplot,可以画箱线图,可以看出不同种类的分布情况  
  2. sns.boxplot(x="Species", y="PetalLengthCm", data=iris)  

5、

[python] view plain copy
  1. # 利用striplot可以锦上添花,加上散点图  
  2.   
  3. # 使振动值jitter=True 使各个散点分开,要不然会是一条直线  
  4. #  
  5. # 注意这里将坐标图用ax来保存了哦,这样第二次才会在原来的基础上加点  
  6. ax = sns.boxplot(x="Species", y="PetalLengthCm", data=iris)  
  7. ax = sns.stripplot(x="Species", y="PetalLengthCm", data=iris, jitter=True, edgecolor="gray")  


6、小提琴图

[python] view plain copy
  1. # 这图可以变现出密度的分布  
  2. sns.violinplot(x="Species", y="PetalLengthCm", data=iris, size=6)  


7、kdeplot

[python] view plain copy
  1. # 通过这个曲线图可以看出不同特征值时的分布密度  
  2. sns.FacetGrid(iris, hue="Species", size=6) \  
  3.    .map(sns.kdeplot, "PetalLengthCm") \  
  4.    .add_legend()  



8.大招来了

[python] view plain copy
  1. #  pairplot显示不同特征之间的关系  
  2. sns.pairplot(iris.drop("Id", axis=1), hue="Species", size=3)  

9、中间对角线的图形也可以用kde显示哦

[python] view plain copy
  1. # 修改参数dige_kind  
  2. sns.pairplot(iris.drop("Id", axis=1), hue="Species", size=3, diag_kind="kde")  


10.现在是pandas表现的时间了

[python] view plain copy
  1. # 用Pandas 快速做出每个特征在不同种类下的箱线图  
  2. iris.drop("Id", axis=1).boxplot(by="Species", figsize=(126))  


11.调和曲线图 Andrew Curves

首先啥是Andrew curves呢 看维基百科

https://en.wikipedia.org/wiki/Andrews_plot

他是将高维的点 化为二维的曲线,曲线是一条傅里叶函数的样子,参数项为不同的特征值,臆想出来了自变量t,这样每个点都是一条曲线


[python] view plain copy
  1. # 画图的函数在下面,我们会发现相同种类的线总是缠绵在一起,可以和聚类混在一起噢,事实上他们与欧氏距离是有关系的  
  2. from pandas.tools.plotting import andrews_curves  
  3. andrews_curves(iris.drop("Id", axis=1), "Species")  

12轮廓图

https://en.wikipedia.org/wiki/Parallel_coordinates

[python] view plain copy
  1. # 轮廓图也是看高维数据的一种方法,将不同的特征放在横坐标,然后将各点的特征值放在纵坐标就可以了  
  2. from pandas.tools.plotting import parallel_coordinates  
  3. parallel_coordinates(iris.drop("Id", axis=1), "Species")  



13 radviz

http://www.doc88.com/p-912968623585.html

[python] view plain copy
  1. # 这也是一种将高维点表现在二维平面的方法,具体作图方法应该在上面的网址上应该有  
  2. from pandas.tools.plotting import radviz  
  3. radviz(iris.drop("Id", axis=1), "Species")  



暂时就是这些,希望会对大家有帮助

补充参考:

http://wenku.baidu.com/link?url=l1tNiAh1YegiSIwDjcS6f4swybDt3A-qczVXpbXf_7S6RUGC_gOOoP9fv4w8VXSMKlYiz0HlhhTsysEwwiqYORMwg-phyehtXlAIAAdEJ8G

python——数据可视化:matplotlib,seaborn,pandas

Introduction 先给出先验知识: 可视化方法对机器学习至关重要(系列)之一 箱线图(Boxplot/violinplot); 直方图(histogram); 散...
  • sqiu_11
  • sqiu_11
  • 2017-07-22 16:36:29
  • 295

安装numpy pandas matplotlib seaborn scipy

安装numpy pandas matplotlib seaborn scipy 首先必须安装一些依赖包 yum -y install blas blas-devel lapack-devel l...
  • bon_mot
  • bon_mot
  • 2016-07-07 14:23:49
  • 987

Python数据可视化—matplotlib笔记

在参加数据挖掘竞赛中,经常需要对数据进行可视化。今天有空就对数据可视化— matplotlib这块内容系统的整理下,方便查找使用。本文来自于对《利用python进行数据分析》以及网上一些博客的总结。 ...
  • qq_34264472
  • qq_34264472
  • 2016-12-22 18:49:40
  • 1974

[机器学习]Python中Numpy,Pandas,Matplotlib,Scipy,Seaborn介绍

Python做数据挖掘很强大,最近几年很火的机器学习以及较为前沿的自然语言处理也会选用Python作为基础工具. 其中python做数据挖掘足够强大,不用怀疑。1. Numpy介绍Numpy是Pyth...
  • BaiHuaXiu123
  • BaiHuaXiu123
  • 2017-04-20 15:15:12
  • 3526

python数据可视化包 seaborn

引言python数据可视化的包有很多,目前使用了matplotlib,现在想尝试seaborn。 Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,...
  • rosefun96
  • rosefun96
  • 2018-01-10 15:07:19
  • 49

Pycon 2017: Python可视化库大全

本文主要摘录自 pycon 2017大会的一个演讲,同时结合自己的一些理解。 pycon 2017的相关演讲主题是“The Python Visualization Landscape”。 先来一...
  • lemonbit
  • lemonbit
  • 2017-06-13 23:00:22
  • 686

用数据可视化直观理解数据--iris数据集为例

  • 2017年04月07日 15:48
  • 4KB
  • 下载

python数据分析之数据可视化matplotlib

import matplotlib.pyplot as plt import numpy as np import numpy.random as randn import pandas as pd ...
  • cxmscb
  • cxmscb
  • 2017-01-27 12:03:06
  • 2102

python科学计算——数据可视化(Matplotlib)

写在前面Matplotlib提供了大量实现数据可视化功能的模块,采用面向对象进行封装,在编写大型应用时通过面向对象方式将更加有效,这里只是对matplotlib的一些简单功能进行总结,需要更高级别的应...
  • u013269505
  • u013269505
  • 2017-12-16 13:05:15
  • 434

Python seaborn matplotlib 对数据进行图表分析

matplotlib官网 基于matplotlib的seaborn官网 import seaborn as sns import matplotlib.pyplot as plt imp...
  • qq_16234613
  • qq_16234613
  • 2017-07-27 20:34:44
  • 1459
收藏助手
不良信息举报
您举报文章:基于Python的数据可视化 matplotlib seaborn pandas
举报原因:
原因补充:

(最多只允许输入30个字)