#!/usr/bin/env python # encoding: utf-8 """ @version: v1.0 @author: W_H_J @license: Apache Licence @contact: 415900617@qq.com @site: @software: PyCharm @file: flowerPlot.py @time: 2018/1/5 18:59 @describe:鸢尾花数据 -使用pandas做分析,用mayploylib模块作图 """ import sys reload(sys) sys.setdefaultencoding("utf-8") import pandas as pd import matplotlib.pyplot as plt import seaborn as sns sns.set(style="white", color_codes=True) def func(): url_2 = 'https://raw.github.com/pydata/pandas/master/pandas/tests/data/iris.csv' iris = pd.read_csv(url_2) iris1 = iris.copy() iris1['Id'] = range(0, len(iris['Name'])) print iris1.head() print iris.head() print iris['Name'].value_counts() # 统计种类数量 # 使用 .plot 做散点图 iris.plot(kind="scatter", x="SepalLength", y="SepalWidth", color='r') # 数据为萼片的长和宽 scatter散点图 # 开始使用seaborn了它能同时显示直方图 sns.jointplot(x="SepalLength", y="SepalWidth", data=iris, size=5) # 我们还可以用seaborn's FacetGrid 标记不同的种类噢 sns.FacetGrid(iris, hue="Name", size=5)\ .map(plt.scatter, "SepalLength", "SepalWidth")\ .add_legend() # hue英文是色彩的意思 # 注意这里的plt哦 # 这图可以变现出密度的分布 --小提琴图 sns.violinplot(x="Name", y="PetalLength", data=iris, size=6) # 通过这个曲线图可以看出不同特征值时的分布密度 sns.FacetGrid(iris, hue="Name", size=6).map(sns.kdeplot, "PetalLength").add_legend() # pairplot显示不同特征之间的关系 sns.pairplot(iris1.drop("Id", axis=1), hue="Name", size=3) # 修改参数dige_kind sns.pairplot(iris1.drop("Id", axis=1), hue="Name", size=3, diag_kind="kde") plt.show() # corr(x, y) # 相关系数,用来刻画二维随机变量两个分量间相互关联程度 # -1 < corr(x, y) < 1, 也就是说相关系数介于 - 1到1之间 # corr(x, y) = 0 则称X, Y不相关,不相关是指X, Y没有线性关系,但也有可能有其他关系,比如平方关系,立方关系等 # corr(x, y) = 1, 则称X与Y完全正相关,corr(x, y) = -1, 则称X, Y完全负相关 print iris.corr() # 在多变量概率统计中,散布矩阵是用来估计多维正态分布协方差的统计量。 pd.plotting.scatter_matrix(iris, alpha=0.2, figsize=(6, 6), diagonal='kde') plt.show() # print iris.boxplot() # 箱图 DataFrame提供了boxplot方法可以用来画箱图。 iris.boxplot(by='Name', figsize=(8, 8)) plt.show() # 直方图和概率密度分布 print iris.ix[:, :-1].head() iris.ix[:, :-1].hist() # hist直方图 iris.plot(kind='kde') # kde# 密度图 plt.show() # 多变量的可视化 pd.plotting.radviz(iris, 'Name') # 径向坐标可视化(radviz)径向坐标可视化是基于弹簧张力最小化算法 plt.show() pd.plotting.andrews_curves(iris, 'Name') # 调和曲线图 调和曲线图的思想和傅立叶变换十分相似,是根据三角变换方法将 p 维空间的点映射到二维平面上的曲线上 plt.show() pd.plotting.parallel_coordinates(iris, 'Name') # 轮廓图的思想非常简单、直观,它是在横坐标上取 p 个点, # 依次表示各个指标 (即变量);横坐标上则对应各个指标的值 # (或者经过标准化变换后的值),然后将每一组数据对应的点依次连接即可。 plt.show() class Main(): def __init__(self): func() if __name__ == "__main__": Main() # http://nbviewer.jupyter.org/gist/cloga/9171281#%E5%9F%BA%E6%9C%AC%E7%94%BB%E5%9B%BE%E5%91%BD%E4%BB%A4
python pandas做数据分析视图分析matplotlib,seaborn模块使用
最新推荐文章于 2024-09-04 16:46:13 发布