• 机器学习-数据可视化神器matplotlib学习之路(二)


    之前学习了matplotlib的一些基本画图方法(查看上一节),这次主要是学习在图中加一些文字和其其它有趣的东西。

    先来个最简单的图

    from matplotlib import pyplot as plt
    import numpy as np
    
    x = np.linspace(-2, 2, 50)
    y = x**2
    plt.xlim((-3,3))#设置x坐标范围
    plt.ylim((0,5))#设置y坐标范围
    plt.plot(x,y)
    
    plt.show()

    接下来加一下文字描述,第一种方法,plt.text()

    from matplotlib import pyplot as plt
    import numpy as np
    
    x = np.linspace(-2, 2, 50)
    y = x**2
    plt.xlim((-3,3))#设置x坐标范围
    plt.ylim((0,5))#设置y坐标范围
    plt.plot(x,y)
    
    plt.text(
        -2,#文字x坐标
        2,#文字y坐标
        'this is simple text',#内容
        fontsize=14#文字大小
    )
    
    plt.show()

    这里我们还可以用$$将文字包住可以让文字字体更加好看,同时也可以实现一些特殊字符的表达,比如一些常用的数学符号,这对写论文有好处

    from matplotlib import pyplot as plt
    import numpy as np
    
    x = np.linspace(-2, 2, 50)
    y = x**2
    plt.xlim((-3,3))#设置x坐标范围
    plt.ylim((0,5))#设置y坐标范围
    plt.plot(x,y)
    
    plt.text(
        -2,#文字x坐标
        2,#文字y坐标
        'this is simple text',#内容
        fontsize=14#文字大小
    )
    plt.text(
        -2,#文字x坐标
        4,#文字y坐标
        r'$this is simple text alpha_i mu_i$',#用$包住空格需要用转义字符转义,包括特殊字符alpha等也需要,alpha_i表示alpha下标i
        fontsize=14#文字大小
    )
    
    plt.show()

    接下来,第二种文字描述,这种要高级一点,用plt.annotate()实现,比如我要在曲线上x=1.5的地方加

    并且向右下偏移一些位置,加上一个曲线箭头指向x=1.5的点

    from matplotlib import pyplot as plt
    import numpy as np
    
    x = np.linspace(-2, 2, 50)
    y = x**2
    plt.xlim((-3,3))#设置x坐标范围
    plt.ylim((0,5))#设置y坐标范围
    plt.plot(x,y)
    
    plt.text(
        -2,#文字x坐标
        2,#文字y坐标
        'this is simple text',#内容
        fontsize=14#文字大小
    )
    plt.text(
        -2,#文字x坐标
        4,#文字y坐标
        r'$this is simple text alpha_i mu_i$',#内容
        fontsize=14#文字大小
    )
    
    x0 = 1.5
    y0 = x0**2
    plt.scatter(x0, y0, s=50, color='r')
    plt.plot([x0, x0], [0, y0], linestyle='--', linewidth=2.0)
    plt.annotate(r'$x**2=%s$' % y0,#内容
                 xy=(x0, y0),#文字坐标
                 xycoords='data',#文字坐标以data也就是x,y的值为基准
                 xytext=(+20,-30),#文字相对于xy坐标的偏移量
                 textcoords='offset points',#偏移基准
                 arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2')#画一个曲线箭头指向xy坐标
                 )
    
    plt.show()

    效果如上图,此方法比较复杂,详细参数说明可以参考官方api,好了,到这里就大功告成!

    接下来准备学习一些常用类型的图了。

  • 相关阅读:
    Linked List Cycle leetcode java (链表检测环)
    Remove Duplicates from Sorted List II leetcode java
    Remove Duplicates from Sorted List leetcode java
    Merge Two Sorted Lists leetcode java
    Swap Nodes in Pairs leetcode java
    Median of Two Sorted Array leetcode java
    阿里云最便宜的四种域名注册
    nohup和&后台运行,进程查看及终止
    ipv6转ipv4 NAT64与DNS64基本原理概述
    ros使用pppoe拨号获取ipv6,并且下发IPV6的dns到客户机win7
  • 原文地址:https://www.cnblogs.com/yifengjianbai/p/10258828.html
Copyright © 2020-2023  润新知