zoukankan      html  css  js  c++  java
  • 数据分析之 matplotlib 包

    Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。

    官方文档:https://matplotlib.org/api/

    1. 一个基本的例子

    import matplotlib.pyplot as plt
    import numpy as np
    
    """
    创建两组数据,使用np.linspace定义x:范围是(-3,3),个数是50,将产生一组(-3,3)内均匀分布的50个数;
    (x,y1)表示曲线1,
    (x,y2)表示曲线2。
    """
    x = np.linspace(-3, 3, 50) # 产生一组(-3,3)内均匀分布的 50 个数
    y1 = 2 * x + 1
    y2 = x ** 2
    
    """
    定义一个图像窗口:编号为3;大小为(8, 5);这两项参数可缺省
    """
    plt.figure(num=3, figsize=(8, 5))
    
    """
    使用plt.plot画出(x ,y2)曲线;使用plt.plot画(x ,y1)曲线,曲线的颜色属性(color)为红色;曲线的宽度(linewidth)为1.0;
    曲线的类型(linestyle)为虚线,除了虚线外,大家还可使用以下线性:'-'、'--'、'-.'、':' 
    """
    plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')
    plt.plot(x, y2)
    
    """
    使用plt.xlim设置x坐标轴范围:(-1, 2); 
    使用plt.ylim设置y坐标轴范围:(-2, 3); 
    使用plt.xlabel设置x坐标轴名称:’I am x’; 
    使用plt.ylabel设置y坐标轴名称:’I am y’;
    """
    plt.xlim((-1, 2))
    plt.ylim((-2, 3))
    plt.xlabel('I am x')
    plt.ylabel('I am y')
    
    """
    我们想要调整坐标轴的刻度的稀疏,这时,就需要使用plt.xticks()或者plt.yticks()来进行调整:
    首先,使用np.linspace定义新刻度范围以及个数:范围是(-1,2);个数是5。使用plt.xticks设置x轴刻度:范围是(-1,2);个数是5。
    使用plt.yticks设置y轴刻度以及名称:刻度为[-2, -1.8, -1, 1.22, 3];对应刻度的名称为[‘really bad’,’bad’,’normal’,’good’, ‘really good’]
    """
    new_ticks = np.linspace(-1, 2, 5)
    plt.xticks(new_ticks)
    plt.yticks([-2, -1.8, -1, 1.22, 3],[r'$really bad$', r'$bad$', r'$normal$', r'$good$', r'$really good$'])
    
    """
    我们的图像坐标轴总是由上下左右四条线组成,我们也可以对它们进行修改:首先,使用plt.gca()获取当前坐标轴信息。使用.spines设置边框。
    .set_color 设置边框颜色,为 'none' 的话,默认为白色
    .set_position 设置边框位置,位置所有属性:outward,axes,data
    使用.xaxis.set_ticks_position设置x坐标刻度数字或名称的位置:bottom.(所有位置:top,bottom,both,default,none)
    使用.yaxis.set_ticks_position设置y坐标刻度数字或名称的位置:left.(所有位置:left,right,both,default,none)
    以 y 轴为例,left 或 right 指的位置是边框(y轴)的位置,边框在哪,对应的 left 和 right 位置就在哪。
    比如代码先设置刻度,在最左边,但后来改变了边框位置,刻度位置也随之变了,就是因为left这个位置是取决于边框的
    """
    ax = plt.gca()
    ax.spines['right'].set_color('none')
    ax.spines['top'].set_color('none')
    ax.xaxis.set_ticks_position('bottom')
    ax.spines['bottom'].set_position(('data', 0))
    ax.yaxis.set_ticks_position('left')
    ax.spines['left'].set_position(('data',0))
    
    # 显示图像
    plt.show()
    

       

  • 相关阅读:
    关于windows客户端网络编程 WSAAsyncSelect函数
    阻塞模式和非阻塞模式
    SRP6协议分析
    普通二叉树转换成二叉查找树方法
    使用openssl库进行开发
    类型转化,网络开发中常见的类型转化
    到底还能够称多久
    权限子系统小结
    使用ASP.NET AJAX开发服务器端事件通知器
    通用权限相关文档的下载
  • 原文地址:https://www.cnblogs.com/yanghh/p/13775524.html
Copyright © 2011-2022 走看看