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


    之前学习了一些通用的画图方法和技巧,这次就学一下其它各种不同类型的图。好了先从散点图开始,上代码:

    from matplotlib import pyplot as plt
    import numpy as np
    
    n = 1024 #生成1024个点
    x = np.random.normal(0, 1, n) #正态分布x坐标,均值0标准差1
    y = np.random.normal(0, 1, n) #正态分布y坐标,均值0标准差1
    color = np.arctan2(y, x) #这个用于渲染好看的颜色,自己琢磨意义,哈哈
    plt.scatter(x, #x坐标
                y, #y坐标
                s=50, #点的大小
                c=color, #颜色
                alpha=0.5, #透明度
                cmap='magma' #颜色板,看文档或者源码有很多类型,自己可以试试,如summer、winter、pink
                )
    plt.show()

    散点图还是比较简单,关于一些常用设置,如坐标、图例、文字等可以看我之前的学习文章,还有就是很多参数这些看看api或者源码都能搞懂的。

    接下来是简单用一下条形图:

    from matplotlib import pyplot as plt
    import numpy as np
    
    n = 12
    x = np.arange(12) #12个条形
    y1 = np.random.uniform(1, 10, n) #分布1-10的高度
    y2 = -np.random.uniform(1, 10, n) #分布(-1)-(-10)的高度
    plt.bar(x, y1)
    plt.bar(x, y2)
    
    #接下来在条形上下方加上数值
    for x0,y0 in zip(x, y1):
        plt.text(x0,
                 y0,
                 '%.2f' % y0, #保留两位小数
                 ha='center', #水平对齐方式
                 va='bottom' #垂直对齐方式
                 )
    
    for x0, y0 in zip(x, y2):
        plt.text(x0,
                 y0,
                 '%.2f' % y0,  # 保留两位小数
                 ha='center',  # 水平对齐方式
                 va='top'  # 垂直对齐方式
                 )
    plt.show()

    好了,一个双层的条形图就完成了。其它还有什么饼图、直方图、等高线图等待很多,就不一一写出来了,接下来再弄一弄在一个figure显示多个图吧

    其实很简单了,这里要用到subplot(n,m,d)将图分成n行m列,添加地d个格子的图像,接下来偷懒了,就用上面两个例子放一起就好了

    from matplotlib import pyplot as plt
    import numpy as np
    
    plt.figure(num=1, figsize=(12, 6))#设置figure属性,因为要放两张图,这里把宽度弄大点
    plt.subplot(1, 2, 1)#1行2列第一个格子ax画图
    n = 12
    x = np.arange(12) #12个条形
    y1 = np.random.uniform(1, 10, n) #分布1-10的高度
    y2 = -np.random.uniform(1, 10, n) #分布(-1)-(-10)的高度
    plt.bar(x, y1)
    plt.bar(x, y2)
    
    #接下来在条形上下方加上数值
    for x0,y0 in zip(x, y1):
        plt.text(x0,
                 y0,
                 '%.2f' % y0, #保留两位小数
                 ha='center', #水平对齐方式
                 va='bottom' #垂直对齐方式
                 )
    
    for x0, y0 in zip(x, y2):
        plt.text(x0,
                 y0,
                 '%.2f' % y0,  # 保留两位小数
                 ha='center',  # 水平对齐方式
                 va='top'  # 垂直对齐方式
                 )
    #到这里都是第一个ax格子的图像
    
    plt.subplot(1, 2, 2)#开始在的二个ax画图
    n = 1024 #生成1024个点
    x = np.random.normal(0, 1, n) #正态分布x坐标,在0-1范围
    y = np.random.normal(0, 1, n) #正态分布y坐标,在0-1范围
    color = np.arctan2(y, x) #这个用于渲染好看的颜色,自己琢磨意义,哈哈
    plt.scatter(x, #x坐标
                y, #y坐标
                s=50, #点的大小
                c=color, #颜色
                alpha=0.5, #透明度
                cmap='magma' #颜色板,看文档或者源码有很多类型,自己可以试试,如summer、winter、pink
                )
    plt.show()

    plt.figure()里面还有很多属性,比如背景颜色板,x和y轴是否共享坐标等等,自己看api和源码吧。哈哈,今天就到这儿。

  • 相关阅读:
    盛最多水的容器
    除自身以外数组的乘积
    组合总和
    旋转图像
    找到所有数组中消失的数字
    RSA加密、签名机制
    SpringBoot-从新建一个项目看起
    linux下vi命令修改文件及保存的使用方法
    集合
    第一个注解式的SpringMVC项目
  • 原文地址:https://www.cnblogs.com/yifengjianbai/p/10259848.html
Copyright © 2020-2023  润新知