zoukankan      html  css  js  c++  java
  • 【模块】:matplotlib 绘制折线图

    matplotlib 

    1、安装matplotlib

    linux系统安装

    # 安装matplotlib模块
    
    $ sudo apt-get install python3-matplotlib
    # 如果是python2.7 执行如下命令
    $ sudo apt-get install python-matplotlib
    # 如果你安装较新的Python,安装模块一乐的一些库
    $ sudo apt-get install python3.5-dev python3.5-tk tk-dev
    $ sudo apt-get install libfreetype6-dev g++
    # 再使用pip来安装模块
    $ pip install --user matplotlib
    

    OS系统中安装 

    # 安装matplotlib模块
    
    $ pip install --user matplotlib

    windows系统中安装

    # 安装matplotlib模块
    
    $pip3 install matplotlib
    

    进入终端执行import matplotlib 不报错表示执行成功

    2、绘制简单的折线图

    创建mpl_squares.py文件:

    import matplotlib.pyplot as plt     # 导入模块
    
    squares = [1,4,9,16,25]         # 指定列表Y坐标为列表中的值,X坐标为列表下标
    plt.plot(squares)           # 传入列表
    plt.show()                  # 输出图像

    绘图:

    修改标签文字和线条粗细:

    import matplotlib.pyplot as plt     # 导入模块
    
    squares = [1,4,9,16,25]         # 指定列表Y坐标为列表中的值,X坐标为列表下标
    plt.plot(squares,linewidth=5)           # linewidth决定绘制线条的粗细
    
    plt.title('Square Numbers',fontsize=24)     # 标题
    plt.xlabel('Vaule',fontsize=14)
    plt.ylabel('Square of Vaule',fontsize=14)
    
    plt.tick_params(axis='both',labelsize=14)      # 刻度加粗
    plt.show()                  # 输出图像
    

    绘图:

     ③ 校正图形(设定X坐标):

    import matplotlib.pyplot as plt     # 导入模块
    
    squares = [1,4,9,16,25]         # 指定列表Y坐标为列表中的值
    input_values = [1,2,3,4,5]
    plt.plot(input_values,squares,linewidth=5)           # linewidth决定绘制线条的粗细
    
    plt.title('Square Numbers',fontsize=24)     # 标题
    plt.xlabel('Vaule',fontsize=14)
    plt.ylabel('Square of Vaule',fontsize=14)
    
    plt.tick_params(axis='both',labelsize=14)      # 刻度加粗
    plt.show()                  # 输出图像
    

    绘图:

    3、绘制散点图

    创建scatter_sqares.py:

    import matplotlib.pyplot as plt
    
    plt.scatter(2,4,s=200)      #X坐标2,Y坐标4 S=200 点大小
    
    plt.title('Square Numbers',fontsize=24)     # 标题
    plt.xlabel('Vaule',fontsize=14)
    plt.ylabel('Square of Vaule',fontsize=14)
    
    plt.tick_params(axis='both',labelsize=14)      # 刻度加粗
    plt.show()                  # 输出图像

    绘图:

    绘制一系列点:

    import matplotlib.pyplot as plt
    
    x_values = [1,2,3,4,5]      # 指定X轴
    y_values = [1,4,9,16,25]        # 指定Y轴
    
    plt.scatter(x_values,y_values,s=100)
    
    --snip---
    
    plt.show()                  # 输出图像
    

    绘图

    自动计算数据:

    import matplotlib.pyplot as plt
    
    x_values = list(range(1,1001))     # 指定X轴
    y_values = [x**2 for x in x_values]        # 指定Y轴
    
    plt.scatter(x_values,y_values,s=1,edgecolors='none')   #edgecolors 删除数据点轮廓
    
    plt.title('Square Numbers',fontsize=24)     # 标题
    plt.xlabel('Vaule',fontsize=14)
    plt.ylabel('Square of Vaule',fontsize=14)
    
    plt.axis([0,1100,0,1100000])                # 设置坐标取值范围
    plt.tick_params(axis='both',labelsize=14)      # 刻度加粗
    plt.show()                  # 输出图像
    

    绘图:

    自定义颜色

    要修改数据点颜色,可向scatter()传递参数c,并将其设置为要使用的颜色的名称

    plt.scatter(x_values,y_values,s=1,edgecolors='none',c='red')   # 红色
    

    你还可以使用RGB颜色模式自定义颜色,要指定自定义颜色,传入一个元祖,分别表示红色,绿色,蓝色,0~1范围,值越接近0,指定的颜色越深,值越接近1,指定的颜色越浅

    plt.scatter(x_values,y_values,s=1,edgecolors='none',c=(0,0,0.8))   # 蓝色
    

    颜色映射-渐变色

    import matplotlib.pyplot as plt
    
    x_values = list(range(1,1001))     # 指定X轴
    y_values = [x**2 for x in x_values]        # 指定Y轴
    
    plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,s=1,edgecolors='none',)   # 从浅蓝色到深蓝色
    
    plt.title('Square Numbers',fontsize=24)     # 标题
    plt.xlabel('Vaule',fontsize=14)
    plt.ylabel('Square of Vaule',fontsize=14)
    
    plt.axis([0,1100,0,1100000])                # 设置坐标取值范围
    plt.tick_params(axis='both',labelsize=14)      # 刻度加粗
    plt.show()                  # 输出图像
    

    绘图:

    自动保存图标:

    plt.savefig('squares_plot.png',bbox_inches='tight')
    

    4、随机漫步

    创建random_walk.py文件:

    from random import choice
    
    class RandWalk(object):
    
        def __init__(self,count=5000):
            self.count = count
            self.x_list = [0]
            self.y_list = [0]
    
        def fill_walk(self):
            while len(self.x_list) < self.count:
                x_step = self.fill_step()
                y_step = self.fill_step()
    
                if x_step ==0 or y_step == 0:
                    continue
                next_x = self.x_list[-1] + x_step
                next_y = self.y_list[-1] + y_step
    
                self.x_list.append(next_x)
                self.y_list.append(next_y)
    
        def fill_step(self):
            direction = choice([-1, 1])
            distance = choice([2, 4, 6, 8, 10])
    
            return direction*distance

    创建rw_visual.py文件:

    import matplotlib.pyplot as plt
    
    from random_walk import RandWalk
    
    rw = RandWalk()
    rw.fill_walk()
    point_numbers = list(range(rw.count))
    
    plt.scatter(rw.x_list,rw.y_list,c=point_numbers,cmap=plt.cm.Blues,s=1)  #颜色由浅转深
    plt.show()
    

    绘图:

    调整尺寸适合屏幕、隐藏X轴Y轴,绘制起点和终点:

    import matplotlib.pyplot as plt
    
    from random_walk import RandWalk
    
    rw = RandWalk()
    rw.fill_walk()
    point_numbers = list(range(rw.count))
    plt.figure(dpi=128,figsize=(10,6))              # 设置显示图片大小
    
    plt.scatter(rw.x_list,rw.y_list,c=point_numbers,cmap=plt.cm.Blues,s=1)  # 颜色由浅转深
    plt.scatter(0,0,c='green',edgecolors='none',s=10)              # 起始颜色
    plt.scatter(rw.x_list[-1],rw.y_list[-1],c='red',edgecolors='none',s=10)  # 终点颜色
    
    plt.axes().get_xaxis().set_visible(False)       # 隐藏X轴
    plt.axes().get_yaxis().set_visible(False)       # 隐藏Y轴
    
    plt.show()

    绘图:

  • 相关阅读:
    网络规划和布线
    网络编程
    NoSQL 非关系数据库
    OpenCV
    首页
    C++关键字
    TCP/IP 详解7 Ping指令
    TCP详解 (1)
    GRE封装解封装过程
    GRE tunnel
  • 原文地址:https://www.cnblogs.com/lianzhilei/p/6855480.html
Copyright © 2011-2022 走看看