zoukankan      html  css  js  c++  java
  • matplotlib学习

    1.matplotlib基础用法

    import matplotlib.pyplot as plt
    import numpy as np
    # 基础用法
    x = np.linspace(-1,1,100)
    y = 2*x + 1
    plt.plot(x,y)
    plt.show()
    

    2.figure图像 figure()

    figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)

    num:图像编号或名称,数字为编号 ,字符串为名称
    figsize:指定figure的宽和高,单位为英寸;
    dpi:指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80;
    facecolor:背景颜色;
    edgecolor:边框颜色;
    frameon:是否显示边框;

    x = np.linspace(-1,1,100)
    y1 = 2*x + 1
    y2 = x**2
    plt.figure()
    plt.plot(x,y1)
    plt.figure()
    plt.plot(x,y2)
    plt.show()  
    

    3.设置坐标轴 gca()

    #设置坐标轴
    x = np.linspace(-3,3,100)
    y1 = 2*x + 1
    y2 = x**2
    
    # xy范围
    plt.xlim(-1,2)
    plt.ylim(-2,3)
    # xy轴描述
    plt.xlabel('I am X')
    plt.ylabel('I am Y')
    # 设置xy轴单位长度
    new_ticks = np.linspace(-1,2,10)
    plt.xticks(new_ticks)
    plt.yticks([-1,0,1,2,3],
              ['l1','l2','l3','l4','l5'])
    # 获取坐标轴,设置边框
    ax = plt.gca()
    ax.spines['right'].set_color('none')
    ax.spines['top'].set_color('none')
    # 设置坐标轴刻度位置
    ax.xaxis.set_ticks_position('bottom')
    ax.yaxis.set_ticks_position('left')
    # 设置边框零点
    ax.spines['bottom'].set_position(('data',0))
    ax.spines['left'].set_position(('data',0))
    
    plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--')
    plt.plot(x,y2,color='blue',linewidth=2.0,linestyle='-')
    plt.show()
    

    4.图例 legend()

    #legend 图例
    x = np.linspace(-3,3,100)
    y1 = 2*x + 1
    y2 = x**2
    # 保存图线
    l1, = plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--')
    l2, = plt.plot(x,y2,color='blue',linewidth=2.0,linestyle='-')
    plt.legend(handles=[l1,l2],labels=['test1','test2'],loc='best')
    plt.show()
    

    5.图像标注

    x = np.linspace(-3,3,100)
    y1 = 2*x + 1
    y2 = x**2
    
    # 获取坐标轴,设置边框
    ax = plt.gca()
    ax.spines['right'].set_color('none')
    ax.spines['top'].set_color('none')
    
    # 设置边框零点
    ax.spines['bottom'].set_position(('data',0))
    ax.spines['left'].set_position(('data',0))
    
    # 图像标注
    x0 = 0.5
    y0 = 2*x0 + 1
    
    # 画点
    plt.scatter(x0,y0,s=50,color='green')
    
    # 画虚线 从(x0,y0)到(x0,0)点画一条虚线
    plt.plot([x0,x0],[y0,0],'k--')
    plt.plot([x0,0],[y0,y0],'k--')
    
    # 画一条指向箭头
    plt.annotate(r'$2x+1=%s$' % y0, xy=(x0,y0), xytext=(-10,+50),
                 textcoords='offset points',fontsize=14,
                 arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))
    
    # 设置显示汉字
    plt.rcParams['font.sans-serif']=['SimHei']
    plt.text(-2.3,6,u'你好',fontdict={'size':'14','color':'green'})
    
    plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--')
    plt.plot(x,y2,color='blue',linewidth=2.0,linestyle='-')
    plt.show()
    

    6.散点图 scatter()

    # 散点图
    x = np.arange(5)
    y = np.arange(5)
    
    plt.scatter(x,y)
    plt.show()
    
    plt.xlim((-3,2))
    plt.ylim((-3,2))
    
    plt.xticks(())
    plt.yticks(())
    
    plt.scatter(np.random.normal(0,1,500),
                np.random.normal(0,1,500),
               s=50,c='y',alpha=0.5)
    plt.show()
    

    7.直方图 bar()

    # 直方图
    x = np.arange(10)
    y = 2**x+1
    plt.bar(x,y)
    for x,y in zip(x,y):
        plt.text(x,y,'%s'%y,ha='center',va='bottom')
    plt.show()
    

    8.子图 subplot()

    # subplot子图
    plt.figure()
    plt.subplot(2,2,1)
    plt.plot([1,4],[-3,4])
    
    plt.subplot(2,2,2)
    plt.plot([1,4],[-3,4])
    
    plt.subplot(2,2,3)
    plt.plot([1,4],[-3,4])
    
    plt.subplot(2,2,4)
    plt.plot([1,4],[-3,4])
    plt.show()
  • 相关阅读:
    编译原理:正则表达式
    编译原理:基于状态转换图识别for语句
    汇编小笔记
    win10汇编如何debug(小白向)
    nodejs模块引用
    nodejs环境设置理解
    分享几个看上去很酷炫的运算
    JavaScript数据结构 (手打代码)
    爬取煎蛋XXOO妹子图片
    Python Selenium官方文档阅读笔记
  • 原文地址:https://www.cnblogs.com/miao-study/p/11725634.html
Copyright © 2011-2022 走看看