基于Python的数据可视化 matplotlib seaborn pandas
2016-02-27 23:38
1026 查看
原文地址:
https://www.kaggle.com/benhamner/d/uciml/iris/python-data-visualizations
原文采用了kaggle上iris花的数据,数据来源从上面的网址上找噢
如果没有seaborn库 安装方法如下
http://www.ithao123.cn/content-10393533.html
正式开始了~~~
数据结构就这样:
[/code]
结果是:
1.
[/code]
2.
[/code]
3神奇的还在下面:
[/code]
4箱线图!
5、
[/code]
6、小提琴图
[/code]
7、kdeplot
[/code]
8.大招来了
[/code]
9、中间对角线的图形也可以用kde显示哦
[/code]
10.现在是pandas表现的时间了
11.调和曲线图 Andrew Curves
首先啥是Andrew curves呢 看维基百科
https://en.wikipedia.org/wiki/Andrews_plot
他是将高维的点 化为二维的曲线,曲线是一条傅里叶函数的样子,参数项为不同的特征值,臆想出来了自变量t,这样每个点都是一条曲线
[/code]
12轮廓图
https://en.wikipedia.org/wiki/Parallel_coordinates
[/code]
13 radviz
http://www.doc88.com/p-912968623585.html
[/code]
暂时就是这些,希望会对大家有帮助
补充参考:
http://wenku.baidu.com/link?url=l1tNiAh1YegiSIwDjcS6f4swybDt3A-qczVXpbXf_7S6RUGC_gOOoP9fv4w8VXSMKlYiz0HlhhTsysEwwiqYORMwg-phyehtXlAIAAdEJ8G
https://www.kaggle.com/benhamner/d/uciml/iris/python-data-visualizations
原文采用了kaggle上iris花的数据,数据来源从上面的网址上找噢
如果没有seaborn库 安装方法如下
http://www.ithao123.cn/content-10393533.html
正式开始了~~~
[code]# 首先载入pandas import pandas as pd # 我们将载入seaborn,但是因为载入时会有警告出现,因此先载入warnings,忽略警告 import warnings warnings.filterwarnings("ignore") import seaborn as sns import matplotlib.pyplot as plt sns.set(style="white", color_codes=True) # 载入数据 iris = pd.read_csv("../input/Iris.csv") # 数据现在为 DataFrame格式 # 用head函数看一下数据结构啥样 iris.head() <span class="c"></span>
数据结构就这样:
Id | SepalLengthCm | SepalWidthCm | PetalLengthCm | PetalWidthCm | Species | |
---|---|---|---|---|---|---|
0 | 1 | 5.1 | 3.5 | 1.4 | 0.2 | Iris-setosa |
1 | 2 | 4.9 | 3.0 | 1.4 | 0.2 | Iris-setosa |
2 | 3 | 4.7 | 3.2 | 1.3 | 0.2 | Iris-setosa |
3 | 4 | 4.6 | 3.1 | 1.5 | 0.2 | Iris-setosa |
4 | 5 | 5.0 | 3.6 | 1.4 | 0.2 | Iris-setosa |
# 让我们用counts功能看下一共有多少种花 iris["Species"].value_counts()
[/code]
结果是:
Iris-setosa 50 Iris-virginica 50 Iris-versicolor 50 Name: Species, dtype: int64
1.
[code]# 使用 .plot 做散点图 iris.plot(kind="scatter", x="SepalLengthCm", y="SepalWidthCm")#数据为萼片的长和宽 结果如下
[/code]
2.
# 开始使用seaborn了它能同时显示直方图噢 sns.jointplot(x="SepalLengthCm", y="SepalWidthCm", data=iris, size=5)
[/code]
3神奇的还在下面:
# 我们还可以用seaborn's FacetGrid 标记不同的种类噢 sns.FacetGrid(iris, hue="Species", size=5) \ #hue英文是色彩的意思 .map(plt.scatter, "SepalLengthCm", "SepalWidthCm") \#注意这里的plt哦 .add_legend()
[/code]
4箱线图!
# Seaborn中的boxplot,可以画箱线图,可以看出不同种类的分布情况 sns.boxplot(x="Species", y="PetalLengthCm", data=iris)
5、
# 利用striplot可以锦上添花,加上散点图 # # 使振动值jitter=True 使各个散点分开,要不然会是一条直线 # # 注意这里将坐标图用ax来保存了哦,这样第二次才会在原来的基础上加点 ax = sns.boxplot(x="Species", y="PetalLengthCm", data=iris) ax = sns.stripplot(x="Species", y="PetalLengthCm", data=iris, jitter=True, edgecolor="gray")
[/code]
6、小提琴图
# 这图可以变现出密度的分布 sns.violinplot(x="Species", y="PetalLengthCm", data=iris, size=6)
[/code]
7、kdeplot
# 通过这个曲线图可以看出不同特征值时的分布密度 sns.FacetGrid(iris, hue="Species", size=6) \ .map(sns.kdeplot, "PetalLengthCm") \ .add_legend()
[/code]
8.大招来了
# pairplot显示不同特征之间的关系 sns.pairplot(iris.drop("Id", axis=1), hue="Species", size=3)
[/code]
9、中间对角线的图形也可以用kde显示哦
# 修改参数dige_kind sns.pairplot(iris.drop("Id", axis=1), hue="Species", size=3, diag_kind="kde")
[/code]
10.现在是pandas表现的时间了
# 用Pandas 快速做出每个特征在不同种类下的箱线图 iris.drop("Id", axis=1).boxplot(by="Species", figsize=(12, 6))
11.调和曲线图 Andrew Curves
首先啥是Andrew curves呢 看维基百科
https://en.wikipedia.org/wiki/Andrews_plot
他是将高维的点 化为二维的曲线,曲线是一条傅里叶函数的样子,参数项为不同的特征值,臆想出来了自变量t,这样每个点都是一条曲线
# 画图的函数在下面,我们会发现相同种类的线总是缠绵在一起,可以和聚类混在一起噢,事实上他们与欧氏距离是有关系的 from pandas.tools.plotting import andrews_curves andrews_curves(iris.drop("Id", axis=1), "Species")
[/code]
12轮廓图
https://en.wikipedia.org/wiki/Parallel_coordinates
# 轮廓图也是看高维数据的一种方法,将不同的特征放在横坐标,然后将各点的特征值放在纵坐标就可以了 from pandas.tools.plotting import parallel_coordinates parallel_coordinates(iris.drop("Id", axis=1), "Species")
[/code]
13 radviz
http://www.doc88.com/p-912968623585.html
# 这也是一种将高维点表现在二维平面的方法,具体作图方法应该在上面的网址上应该有 from pandas.tools.plotting import radviz radviz(iris.drop("Id", axis=1), "Species")
[/code]
暂时就是这些,希望会对大家有帮助
补充参考:
http://wenku.baidu.com/link?url=l1tNiAh1YegiSIwDjcS6f4swybDt3A-qczVXpbXf_7S6RUGC_gOOoP9fv4w8VXSMKlYiz0HlhhTsysEwwiqYORMwg-phyehtXlAIAAdEJ8G
相关文章推荐
- python中map()与zip()操作方法
- Notepad++插件Emmet不工作解决办法
- python之字符串
- python中input()与raw_input()的区别分析
- python PIL模块与随机生成中文验证码
- Pythont特殊语法filter,map,reduce,apply使用方法
- python常用模块os,random,sys
- 用Python做的数学四则运算_算术口算练习程序(后添加减乘除)
- win7+gvim7.4+spf13使用自动补全编写python脚本
- [知乎]学了 Python 之后,再学 Java 是不是会更容易?
- 《Python自动化运维:技术与最佳实践》读书笔记
- Python学习笔记
- python 版本traceroute和路由图片输出
- Python数据库的连接实现方法与注意事项
- 学习python之编写简单简单连接数据库并执行查询操作
- RPi 2B python opencv camera demo example
- 学习python之编写简单乘法口诀表实现代码
- python之pymysql模块学习(待完善...)
- 学习python 之编写简单乘法运算题
- Python中:self和__init__的含义 + 为何要有self和__init__