zoukankan      html  css  js  c++  java
  • 机器学习-数据可视化神器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,好了,到这里就大功告成!

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

  • 相关阅读:
    《javascript设计模式》2接口
    对css类名className的一些操作的函数
    js设计模式方法的链式调用及回调
    js设计模式封装
    ajax的封装
    js设计模式单体(Singleton)
    js设计模式继承
    metasploit
    使用 AsyncCallback 处理异步调用
    log4net 的使用
  • 原文地址:https://www.cnblogs.com/yifengjianbai/p/10258828.html
Copyright © 2011-2022 走看看