专栏名称: Python开发者
人生苦短,我用 Python。伯乐在线旗下账号「Python开发者」分享 Python 相关的技术文章、工具资源、精选课程、热点资讯等。
目录
相关文章推荐
51好读  ›  专栏  ›  Python开发者

基于 Python 的数据可视化

Python开发者  · 公众号  · Python  · 2016-12-29 21:06

正文

请到「今天看啥」查看全文


(点击 上方公众号 ,可快速关注)


来源:bea_tree

英文:kaggle

链接:blog.csdn.net/bea_tree/article/details/50757338


原文采用了kaggle上iris花的数据,数据来源从上面的网址上找噢


如果没有seaborn库 安装方法如下


http://www.ithao123.cn/content-10393533.html


正式开始了~~~


# 首先载入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 ()


数据结构就这样:




# 让我们用counts功能看下一共有多少种花

iris [ "Species" ]. value_counts ()


结果是:


Iris - setosa 50

Iris - virginica 50

Iris - versicolor 50

Name : Species , dtype : int64


1.


# 使用 .plot 做散点图

iris . plot ( kind = "scatter" , x = "SepalLengthCm" , y = "SepalWidthCm" ) #数据为萼片的长和宽 结果如下



2.


# 开始使用seaborn了它能同时显示直方图噢

sns . jointplot ( x = "SepalLengthCm" , y = "SepalWidthCm" , data = iris , size = 5 )



3 神奇的还在下面:


# 我们还可以用seaborn's FacetGrid 标记不同的种类噢

sns . FacetGrid ( iris , hue = "Species" , size = 5 ) #hue英文是色彩的意思

. map ( plt . scatter , "SepalLengthCm" , "SepalWidthCm" ) #注意这里的plt哦

. add_legend ()


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


6、小提琴图


# 这图可以变现出密度的分布

sns . violinplot ( x = "Species" , y = "PetalLengthCm" , data = iris , size = 6 )



7、kdeplot


# 通过这个曲线图可以看出不同特征值时的分布密度

sns . FacetGrid ( iris , hue = "Species" , size = 6 )

. map ( sns . kdeplot , "PetalLengthCm" )

. add_legend ()


8.大招来了


#  pairplot显示不同特征之间的关系

sns . pairplot ( iris . drop ( "Id" , axis = 1 ), hue = "Species" , size = 3 )



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


# 修改参数dige_kind

sns . pairplot ( iris . drop ( "Id" , axis = 1 ), hue = "Species" , size = 3 , diag_kind = "kde" )



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



12 轮廓图


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


# 轮廓图也是看高维数据的一种方法,将不同的特征放在横坐标,然后将各点的特征值放在纵坐标就可以了

from pandas . tools . plotting import parallel_coordinates

parallel_coordinates ( iris . drop ( "Id" , axis = 1 ), "Species" )



13 radviz


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


# 这也是一种将高维点表现在二维平面的方法,具体作图方法应该在上面的网址上应该有

from pandas . tools . plotting import radviz

radviz ( iris . drop ( "Id" , axis = 1 ), "Species" )



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


觉得本文对你有帮助?请分享给更多人

关注「Python开发者」

看更多技术干货







请到「今天看啥」查看全文