zoukankan      html  css  js  c++  java
  • matplotlib常用操作

    1.根据坐标点绘制:

    import numpy as np
    import matplotlib.pyplot as plt
    x = np.array([1,2,3,4,5,6,7,8])
    y = np.array([3,5,7,6,2,6,10,15])
    plt.plot(x,y,'r')# 折线 1 x 2 y 3 color
    plt.plot(x,y,'g',lw=10)# 4 line w
    # 折线 饼状 柱状
    x = np.array([1,2,3,4,5,6,7,8])
    y = np.array([13,25,17,36,21,16,10,15])
    plt.bar(x,y,0.2,alpha=1,color='b')# 5 color 4 透明度 3 0.9
    plt.show()

    import matplotlib.pyplot as plt
    import numpy as np
    
    #从-1-----1之间等间隔采66个数.也就是说所画出来的图形是66个点连接得来的
    #注意:如果点数过小的话会导致画出来二次函数图像不平滑
    x = np.linspace(-1, 1,66)
    # 绘制y=2x+1函数的图像
    y = 2 * x + 1
    plt.plot(x, y)
    plt.show()
    
    # 绘制x^2函数的图像
    y = x**2
    plt.plot(x, y)
    plt.show()

    figure的使用:

    """
    figure的使用
    """
    import matplotlib.pyplot as plt
    import numpy as np
    # 
    x = np.linspace(-1, 1, 50)
    
    
    # figure 1
    y1 = 2 * x + 1
    plt.figure()
    plt.plot(x, y1)
    
    
    # figure 2
    y2 = x**2
    plt.figure()
    plt.plot(x, y2)
    
    
    # figure 3,指定figure的编号并指定figure的大小, 指定线的颜色, 宽度和类型
    #一个坐标轴上画了两个图形
    y2 = x**2
    plt.figure(num = 5, figsize = (4, 4))
    plt.plot(x, y1)
    plt.plot(x, y2, color = 'red', linewidth = 1.0, linestyle = '--')
    plt.show()

    一共会画出三张图,前两张和上面的简单案例画出来的两张一样。第三张: 

    设置坐标轴:

    import matplotlib.pyplot as plt
    import numpy as np
    
    # 绘制普通图像
    x = np.linspace(-1, 1, 50)
    y1 = 2 * x + 1
    y2 = x**2
    
    plt.figure()
    plt.plot(x, y1)
    plt.plot(x, y2, color = 'red', linewidth = 1.0, linestyle = '--')
    
    # 设置坐标轴的取值范围
    plt.xlim((-1, 1))
    plt.ylim((0, 3))
    
    # 设置坐标轴的lable
    #标签里面必须添加字体变量:fontproperties='SimHei',fontsize=14。不然可能会乱码
    plt.xlabel(u'这是x轴',fontproperties='SimHei',fontsize=14)
    plt.ylabel(u'这是y轴',fontproperties='SimHei',fontsize=14)
    
    # 设置x坐标轴刻度, 之前为0.25, 修改后为0.5
    #也就是在坐标轴上取5个点,x轴的范围为-1到1所以取5个点之后刻度就变为0.5了
    plt.xticks(np.linspace(-1, 1, 5))
    plt.show()

    # 获取当前的坐标轴, gca = get current axis
    ax = plt.gca()
    # 设置右边框和上边框
    ax.spines['right'].set_color('none')
    ax.spines['top'].set_color('none')
    # 设置x坐标轴为下边框
    ax.xaxis.set_ticks_position('bottom')
    # 设置y坐标轴为左边框
    ax.yaxis.set_ticks_position('left')
    # 设置x轴, y周在(0, 0)的位置
    ax.spines['bottom'].set_position(('data', 0))
    ax.spines['left'].set_position(('data', 0))

    绘制散点图:

    import numpy as np
    import matplotlib.pyplot as plt
    
    # 数据个数
    n = 1024
    # 均值为0, 方差为1的随机数
    x = np.random.normal(0, 1, n)
    y = np.random.normal(0, 1, n)
    
    # 计算颜色值
    color = np.arctan2(y, x)
    # 绘制散点图
    plt.scatter(x, y, s = 75, c = color, alpha = 0.5)
    # 设置坐标轴范围
    plt.xlim((-1.5, 1.5))
    plt.ylim((-1.5, 1.5))
    
    # 不显示坐标轴的值
    plt.xticks(())
    plt.yticks(())
    
    plt.show()

    绘制柱状图:

    import matplotlib.pyplot as plt
    import numpy as np
    
    # 数据数目
    n = 10
    x = np.arange(n)
    # 生成数据, 均匀分布(0.5, 1.0)之间
    y1 = (1 - x / float(n)) * np.random.uniform(0.5, 1.0, n)
    y2 = (1 - x / float(n)) * np.random.uniform(0.5, 1.0, n)
    
    # 绘制柱状图, 向上
    plt.bar(x, y1, facecolor = 'blue', edgecolor = 'white')
    # 绘制柱状图, 向下
    plt.bar(x, -y2, facecolor = 'green', edgecolor = 'white')
    
    
    temp = zip(x, y2)
    # 在柱状图上显示具体数值, ha水平对齐, va垂直对齐
    for x, y in zip(x, y1):
        plt.text(x + 0.05, y + 0.1, '%.2f' % y, ha = 'center', va = 'bottom')
    
    for x, y in temp:
        plt.text(x + 0.05, -y - 0.1, '%.2f' % y, ha = 'center', va = 'bottom')
    
    # 设置坐标轴范围
    plt.xlim(-1, n)
    plt.ylim(-1.5, 1.5)
    # 去除坐标轴
    plt.xticks(())
    plt.yticks(())
    plt.show()

  • 相关阅读:
    zookeeper集群搭建
    mysql当前库的查询
    逻辑卷管理
    python小技巧,各种进制的转换
    修剪我的身心
    点击右键很慢,禁用网卡就好了问题解决了(转载)
    实际应用中的C#加密
    ckeditor+ckfinder配置
    ASP.NET MVC学习总结(二)
    MVC3关于用户名的验证
  • 原文地址:https://www.cnblogs.com/pythonlearing/p/9812948.html
Copyright © 2011-2022 走看看