zoukankan      html  css  js  c++  java
  • 可视化库-Matplotlib基础设置(第三天)

    1.画一个基本的图

    import numpy as np
    import matplotlib.pyplot as plt
    
    # 最基本的一个图,"r--" 线条加颜色, 也可以使用linestyle和color来进行设置 linestyle='--', color='r'
    plt.plot([1, 2, 3, 4, 5], [1, 4, 9, 16, 25], 'r--')
    
    # 画出x轴 和 y轴的坐标,fontsize 打印字体大小
    plt.xlabel('xlabel', fontsize=16)
    plt.ylabel('ylabel', fontsize=16)
    plt.show()

    2. 画多条直线

    tang_numpy = np.arange(0, 10, 0.5)
    plt.plot(tang_numpy, tang_numpy, linestyle='--', color='r', marker='o')
    plt.show()
    
    plt.plot(tang_numpy, tang_numpy**2,'r--',
             tang_numpy, tang_numpy**3, 'go',
             tang_numpy, tang_numpy, 'bs',
             )
    plt.show()

    3. linewidth指定线条的宽度,marker='o', markerfacecolor表示mark颜色,markersize # 表示标志物的大小

    x = np.linspace(-10, 10)
    y = np.sin(x)
    plt.plot(x, y, linewidth=2.0)
    plt.show()
    # marker标志物的点, markerfacecolor表示mark颜色,markersize #表示标志物的大小
    plt.plot(x, y, color='b', linestyle=':', marker='o', markerfacecolor='r', markersize=10)
    plt.show()

    4. plt.setp(line, color='r', linewidth=2.0, alpha=0.5) # plot后进行单独的属性设置

    line = plt.plot(x, y)
    plt.setp(line, color='r', linewidth=2.0, alpha=0.4)
    plt.show()

    5.plt.subplot(211) 子图 211表示的是画的图是2行一列的,最后一个1表示子图里面的第一个图

    plt.subplot(211)
    plt.plot(x, y, color='r')
    # 212表示一会要画的图是两行一列的,最后一个1表示子图当中的第二个图
    plt.subplot(212)
    plt.plot(x, y, color='b')
    plt.show()

    # 绘制一行两列
    plt.subplot(121)
    plt.plot(x, y, color='r')
    plt.subplot(122)
    plt.plot(x, y, color='b')
    plt.show()

    6. 绘图上加上注释 plt.text(0, 0, '唐宇迪') plt.grid(True)#表示加上网格

    plt.plot(x, y, color='b', linestyle=':', marker='o', markerfacecolor='r', markersize=10)
    plt.xlabel('x:--')
    plt.ylabel('y:--')
    plt.title('tang yu di:---')
    # text加注释,(0,0)表示位置, '唐宇迪'表示内容
    plt.text(0, 0, 'tangyudi')
    plt.grid(True)
    plt.show()

    7. # 在文本区域加上一个箭头标志

    plt.annotate('tangyudi', xy=(-5, 0), xytext=(-2, 0.3), arrowprops=dict(facecolor='black', shrink=0.05, headwidth=20, headlength=20))  # annotate 表示加文本标注, xy表示文本的位置,xytext表示箭头相对于文本的位置  arrowprops 表示箭头, 输入的是字典, facecolor表示箭头颜色, shrink=0.05表示箭头的收缩程度, headwidth表示箭头的宽,headlength表示箭头的长度

    8. 设置x轴的坐标不可见,包括刻度和数字

    x = range(10)
    y = range(10)
    fig = plt.gca()
    plt.plot(x, y)
    # 设置x轴的刻度不可见
    fig.axes.get_xaxis().set_visible(False)
    
    plt.show()

    9.画hist直方图, ax.spines['top'].set_visible(False)去除顶部和右边的框,plt.tick_param(bottom='off'),同时去除x轴底部刻度

    import math
    x = np.random.normal(loc=0.0, scale=1.0, size=300)
    width = 0.5
    # 设定bins的范围
    bins = np.arange(math.floor(x.min())-1, math.ceil(x.max())+1, width)
    ax = plt.subplot(111)
    # 设定图的方框不可见
    ax.spines['top'].set_visible(False)
    ax.spines['right'].set_visible(False)
    # 去除各个方向上的刻度值
    plt.tick_params(bottom='off', left='off', right='off', top='off')
    # 画直方图x表示数值,bins表示直方图
    plt.hist(x, bins=bins)
    plt.show()

    10.设置x轴的标签 ax.set_xticklabels(label, rotation=45,horizontalalignment='left') rotation 表示旋转的角度,horizontalalignment='left'表示对齐的方式)

    x = range(10)
    y = range(10)
    
    labels = ['tangyudi' for x in range(10)]
    fig, ax = plt.subplots()
    plt.plot(x, y)
    # plt.xticks刻度设置范围
    plt.xticks(range(10))
    # 设置xtick文本标签的旋转方向和对齐方式
    ax.set_xticklabels(labels, rotation=45, horizontalalignment='right')
    plt.show()

    11. 进行图形的注释 plt.legend()

    # 1 将标注放在图里面
    x = np.arange(10)
    for i in range(1, 4):
        plt.plot(x, i*x**2, label='Group %d'%i)
    # loc 表示放的位置,best表示最好的位置
    plt.legend(loc='best')
    plt.show()
    
    # 2 将标注放在外面
    figure = plt.figure()
    ax = plt.subplot(111)
    x = np.arange(10)
    for i in range(1, 4):
        plt.plot(x, i*x**2, label='Group %d'%i)
    # bbox_to_anchor表示放的位置
    ax.legend(loc='upper center', bbox_to_anchor=(0.5, 1.15), ncol=3)
    plt.show()
    
    # 3 将标注放在右侧, ncol = 1表示放在一列里面
    figure = plt.figure()
    ax = plt.subplot(111)
    x = np.arange(10)
    for i in range(1, 4):
        plt.plot(x, i*x**2, label='Group %d'%i)
    
    ax.legend(loc='upper center', bbox_to_anchor=(1.2, 1), ncol=1)
    plt.show()

    第二个程序的图

     12 plt.legend(loc='best', framealpha=0.05) # 对图例进行透明化设置

    x = np.arange(10)
    for i in range(4):
        plt.plot(x, i*x**2, label=('Group %d'%i), marker="o")
    
    plt.legend(loc='best', framealpha=0.05)
    plt.title('tangyudi')
    plt.show()

    13. mpl.rcparams['axes.titlesize'] # 设置标题的大小, 可用于放大标题

    import matplotlib as mpl
    # 设置标题大小为20
    mpl.rcParams['axes.titlesize'] = '20'
    x = np.arange(20)
    for i in range(1, 4):
        plt.plot(x, i*x**2, label=('Group %d'%i))
    
    plt.legend()
    plt.title('tangyudi')
    plt.show()

    14.风格的设置,使用plt.style.use()

    # 14 风格设置
    # 1 进行混合风格的设置,风格表示的是背景
    import numpy as np
    import matplotlib.pyplot as plt
    
    # 输出可以使用的风格
    print(plt.style.available)
    
    x = np.linspace(-10, 10)
    y = np.sin(x)
    # 以列表的形式进行混合使用
    plt.style.use(['ggplot', 'bmh'])
    plt.plot(x, y)
    plt.show()
    
    # 2  歪歪扭扭的风格
    plt.xkcd()
    plt.plot(x, y)
    plt.show()
  • 相关阅读:
    OCP 071【中文】考试题库(cuug整理)第39题
    OCP 071【中文】考试题库(cuug整理)第38题
    OCP 071【中文】考试题库(cuug整理)第37题
    OCP 071【中文】考试题库(cuug整理)第36题
    OCP 071【中文】考试题库(cuug整理)第35题
    OCP 071【中文】考试题库(cuug整理)第34题
    POST 数据的丢失 +号
    Windows下使用 sqlmap 测试注入
    多部电梯的测试用例
    如何测试购物车?
  • 原文地址:https://www.cnblogs.com/my-love-is-python/p/10235880.html
Copyright © 2011-2022 走看看