matplot数据可视化基础

  制作提供信息的可视化(有时称作绘图)是数据分析中最重要任务之一。

1.图片(画布)与子图

    plt.figure :创建一张空白的图片,可以指定图片的大小、像素。

    figure.add_subplot:添加子图,可以指定子图的行数、列数和选中图片的编号。

    如果使用plt.subplots(),它创建了一张图片,然后返回包含了已生成子图对象的Numpy数组

    plt.subplots选型:

          nrow:子图的行数

          ncols:子图的列数

          sharex:所有子图使用相同的x轴刻度

          sharey:所有子图使用相同的y轴刻度

    

 import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = "SimHei" #设置中文显示
plt.rcParams["axes.unicode_minus"] = False #设置正常符号
#没有子图的绘图
x = np.arange(0,1,0.01)
y = x**2
y2 = x**4
plt.plot(x,y)
plt.plot(x,y2)
plt.show()
#有子图的绘制方法
fig = plt.figure(figsize=(8,5))
ax1 = fig.add_subplot(2,1,1)
ax1.plot(x,y)
ax2 = fig.add_subplot(2,1,2)
ax2.plot(x,y2)
plt.show()
#用plt.subplots方法
fig,axes = plt.subplots(2,1,sharex=True)
axes[0].plot(x,y)
axes[1].plot(x,y2)
plt.show()

2.添加各类标签和图例的常用函数

    plt.title  为当前图形添加标题,可以指定标题的名称、位置、颜色、大小等参数

    plt.xlabel  为当前图形添加x轴名称,可以指定位置、颜色、大小等参数

    plt.ylabel:为当前图形添加y轴名称,可以指定位置、颜色、字体大小等参数

    plt.xlim:指定当前图形x轴的范围,只能确定一个数值区间,而无法使用字符串标识

    plt.ylim:指定当前图形y轴的范围,只能确定一个数值区间,而无法使用字符串标识

    plt. xticks:指定x轴数目与取值

    plt.yticks:指定y轴刻度的数目与取值

    plt.legend:根据当前图形的图例,可以指定图例的大小、位置、标签。

    plt.savefig("filename"):保存图片

    text/arrow/annote方法添加注释和文本

    

 import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = "SimHei"
plt.rcParams["axes.unicode_minus"] = False
x = np.arange(0,1,0.01)
y1 = x**2
y2 = x**4
plt.plot(x,y1,"g--")
plt.plot(x,y2,"b-")
plt.xlabel("x") #设置x轴类标
plt.ylabel("y") #设置y轴类标
plt.xlim([0,1]) #设置x范围
plt.ylim([0,1]) #设置y范围
plt.title("x**2和x**4函数") #添加标题
plt.legend(["Y1","Y2"],loc="best") #
plt.show()

3.设置pyplot的rc参数

     lines.linestyle:线条样式

      lines.linewidth:线条宽度

    lines.marker:线条上的点的形状

    lines.markersize:点的大小

4.分析特征间的相互关系

    1.柱状图:

        plot.bar():绘制垂直方向上的柱状图

        plot.barh():绘制水平方向上的柱状图

    

 
 import matplotlib.pyplot as plt
import pandas as pd
fig,axes = plt.subplots(2,1)
data = pd.Series(np.random.rand(16),index=list("abcdefghijklmnop"))
data.plot.bar(ax=axes[0],color='k')
data.plot.barh(ax=axes[1],color="r")
plt.show()
df = pd.DataFrame(np.random.rand(6,4),index=["one","two","three","four","five","six"],
columns=pd.Index(["a","b","c","d"],name="Genus"))
df.plot.bar()
df.plot.barh(stacked=True)
plt.show()

    2.直方图和密度图:

        直方图是一种条形图,用于给出值频率的离散显示。数据被分隔成离散的,均匀间隔的箱,并且绘制每个箱中数据点的数量.一般用横轴表示        数据类型,用纵轴表示数量或者占比。

        plot.hist()

        密度图是一种与直方图相关的图表类型,它通过计算可能产生观测数据的连续概率分布估计而产生的。 密度图也称为内核密度估计图            (KED)

        plot.density()

        seabon.distplot()可以绘制直方图和连续密度估计

 t seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
data1 = pd.Series(np.random.normal(0,1,size=200))
data2 = pd.Series(np.random.normal(10,2,size=200))
data3 = pd.Series(np.concatenate([data1,data2]))
# print(data3)
sns.distplot(data3,bins=100,color="k")
plt.show()

    3.散点图

        散点图,又称散点分布图,是一个以一个特征为横坐标,以另一个特征为纵坐标,利用坐标点的分布状态反映特征间的统计关系的一阵图         形。主要用于分析特征间的相互关系,散点图可以提供两类关键信息。1.特征之间是否存在数值或数量之间的关联趋势,关联趋势是线性           还是非线性的。2.如果从某一个点或者某几个点偏离大多数    点,则这些点就是离群值,从而分析这些离群值是否在建模分析中产生          很大的关系。散点图通过散点的疏密程度和变化趋势表示两个特征的数量关系。

    plt.scatter(x,y,s=None,c=None,marker=None)  c:代表颜色,marker:绘制点的类型

    seaborn.pairplot(data,diag_kind="kde",{“plot_kws”:0.2}) 可以支持在对角线上放置每个变量的直方图或密度估计图

    4.折线图

        折线图是一种将数据点按照顺序连接起来的图形。查看因变量y随自变量x改变的趋势,最适合于显示随时间而变化的连续数据.

        plt.plot()

    5.饼图

        饼图是将各项大小与各项总和的比例显示在一张“饼”上,以“饼”的大小确定所占的比例。

        plt.pie(x,explode,labels,autopct,octdistance,labeldistance,radius)

        explode:设定各项距离圆心n个半径

        label:饼图的标签

        autupct:指定数值的显示方式

    6.箱型图

        箱型图也称箱须图,其绘制需要常用的统计量,能提供有关数据位置和分散情况的关键信息,尤其在比较不同特征时,更可表现其分散程度         差异。箱型图利用数据中的5个统计量(最小值、下四分位数、中位数、上四分位数、和最大值)来描述数据。

        plt.boxplot(x,menline) meanline:是否显示中值

我的Python分析成长之路10的更多相关文章

  1. 我的Python分析成长之路6

    模块:本质就是.py结尾的文件.从逻辑上组织python代码. 包: 本质就是一个目录,带有__init__.py文件,从逻辑上组织模块. 模块的分类: 1.标准库(内置的模块) 2.开源库(第三方库 ...

  2. 我的Python分析成长之路8

    Numpy数值计算基础 Numpy:是Numerical Python的简称,它是目前Python数值计算中最为基础的工具包,Numpy是用于数值科学计算的基础模块,不但能够完成科学计算的任而且能够用 ...

  3. 我的Python分析成长之路11

    数据预处理 如何对数据进行预处理,提高数据质量,是数据分析中重要的问题. 1.数据合并 堆叠合并数据,堆叠就是简单地把两个表拼在一起,也被称为轴向链接,绑定或连接.依照轴的方向,数据堆叠可分为横向堆叠 ...

  4. 我的Python分析成长之路1

    Python是什么?                                                                                           ...

  5. 我的Python分析成长之路7

    类 一.编程范式: 1.函数式编程   def 2.面向过程编程   (Procedural Programming) 基本设计思路就是程序一开始是要着手解决一个大的问题,然后把一个大问题分解成很多个 ...

  6. 我的Python分析成长之路9

    pandas入门 统计分析是数据分析的重要组成部分,它几乎贯穿整个数据分析的流程.运用统计方法,将定量与定性结合,进行的研究活动叫做统计分析.而pandas是统计分析的重要库. 1.pandas数据结 ...

  7. 我的Python分析成长之路5

    一.装饰器: 本质是函数,装饰其他函数,为其他函数添加附加功能. 原则: 1.不能修改被装饰函数的源代码. 2.不能修改被装饰函数的调用方式. 装饰器用到的知识: 1.函数即变量   (把函数体赋值给 ...

  8. 我的Python分析成长之路2

    2018-12-29 一.python数据类型: 1.数字 int(整形) float(浮点型) complex(复数型) 2.布尔值(bool)     真或假 True or False 3.字符 ...

  9. 我的Python分析成长之路4

    一.函数 1.什么是函数?:函数是带名字的代码块,调用函数,只要调用函数名就可以.    2.函数的性质:1.减少重复代码 2.使程序变得可扩展 3.使程序变得易维护 3.编程范示: 1.面向对象编程 ...

随机推荐

  1. Linux (二)

    PS :显示系统进程 -a :显示所有进程(包括其他用户的进程) -u :用户以及其他详细信息 -x :显示没有控制终端的进程 -ef :显示所有 top :用于动态地监视进程活动与系统负载的信息 p ...

  2. CF #541div2 D

    题目本质:形成一个拓扑图,不应带自环. 解决方法: 1.先把等于号的部分用dsu缩点: 2.大于和小于号建立拓扑关系: 3.n*m的矩阵,只要用标号n+j代表m集合的第j个就从二维降到一维了: 4.d ...

  3. 在 Java 的多线程中,如何去判断给定的一个类是否是线程安全的(另外:synchronized 同步是否就一定能保证该类是线程安全的。)

    同步代码块和同步方法的区别:同步代码块可以传入任意对象,同步方法中 如果多个线程检查的都是一个新的对象,不同的同步锁对不同的线程不具有排他性,不能实现线程同步的效果,这时候线程同步就失效了. 两者的区 ...

  4. 542 01 Matrix 01 矩阵

    给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离.两个相邻元素间的距离为 1 .示例 1:输入:0 0 00 1 00 0 0输出:0 0 00 1 00 0 0 示例 2:输入: ...

  5. Unity Shader入门精要学习笔记 - 第3章 Unity Shader 基础

    来源作者:candycat   http://blog.csdn.net/candycat1992/article/ 概述 总体来说,在Unity中我们需要配合使用材质和Unity Shader才能达 ...

  6. 在spring的过滤器中注入实体类(@autowire会失效可使用这个方法)

    转载:难得可贵的好文章 https://blog.csdn.net/chl191623691/article/details/78657638 首先,本文   绝对是好文!不止本文,作者的文章都是很经 ...

  7. 搭建高可用mongodb集群—— 副本集

    转自:http://www.lanceyan.com/tech/mongodb/mongodb_repset1.html 在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB& ...

  8. 两小时学Thinkphp3.1(多数来自thinkphp3.1快速入门)

    调试模式 define('APP_DEBUG',TRUE); 定义自动验证 protected $_validate = array( array('title','require','标题必须'), ...

  9. java实现打开Windows控制台窗口

    在写Python程序的时候突发奇想了一下,能不能用java代码实现打开控制台窗口呢? 经过查询网络资料和java API文档,终于实现了: package com.primeton.cmd; impo ...

  10. 爬虫基本原理及requests,response详解

    一.爬虫基本原理 1.爬虫是什么 #1.什么是互联网? 互联网是由网络设备(网线,路由器,交换机,防火墙等等)和一台台计算机连接而成,像一张网一样. #2.互联网建立的目的? 互联网的核心价值在于数据 ...