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

原文地址:

https://www.kaggle.com/benhamner/d/uciml/iris/python-data-visualizations

原文采用了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()

<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

# 让我们用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")



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

补充参考:

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


评论 2 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值