• python使用matplotlib绘制折线图教程


    Matplotlib是一个Python工具箱,用于科学计算的数据可视化。借助它,Python可以绘制如Matlab和Octave多种多样的数据图形。下面这篇文章主要介绍了python使用matplotlib如何绘制折线图的方法教程,需要的朋友可以参考借鉴。

     

    matplotlib简介

    matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。

    它的文档相当完备,并且Gallery页面中有上百幅缩略图,打开之后都有源程序。因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定。

    在Linux下比较著名的数据图工具还有gnuplot,这个是免费的,Python有一个包可以调用gnuplot,但是语法比较不习惯,而且画图质量不高。

    而 Matplotlib则比较强:Matlab的语法、python语言、latex的画图质量(还可以使用内嵌的latex引擎绘制的数学公式)。

    绘图库Matplotlib的安装方法:点击这里

    matplotlib绘制折线图

    1. line chart

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.linspace(0, 2 * np.pi, 100)
    y1, y2 = np.sin(x), np.cos(x)
    
    plt.plot(x, y1)
    plt.plot(x, y2)
    
    plt.title('line chart')
    plt.xlabel('x')
    plt.ylabel('y')
    
    plt.show()

    2. 图例

    在plot的时候指定label,然后调用legend方法可以绘制图例。例如:

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.linspace(0, 2 * np.pi, 100)
    y1, y2 = np.sin(x), np.cos(x)
    
    plt.plot(x, y1, label='y = sin(x)')
    plt.plot(x, y2, label='y = cos(x)')
    plt.legend()
    plt.show()

    legend方法可接受一个loc关键字参数来设定图例的位置,可取值为数字或字符串:

         0: ‘best'

         1: ‘upper right'

         2: ‘upper left'

         3: ‘lower left'

         4: ‘lower right'

         5: ‘right'

         6: ‘center left'

         7: ‘center right'

         8: ‘lower center'

         9: ‘upper center'

         10: ‘center'

    3. 线的样式

    (1)颜色

    plot方法的关键字参数color(或c)用来设置线的颜色。可取值为:

    1、颜色名称或简写

         b: blue

         g: green

         r: red

         c: cyan

         m: magenta

         y: yellow

         k: black

         w: white

    2、#rrggbb

    3、(r, g, b) 或 (r, g, b, a),其中 r g b a 取均为[0, 1]之间

    4、[0, 1]之间的浮点数的字符串形式,表示灰度值。0表示黑色,1表示白色

    (2)样式

    plot方法的关键字参数linestyle(或ls)用来设置线的样式。可取值为:

    • -, solid
    • --, dashed
    • -., dashdot
    • :, dotted
    • '', ' ', None

    (3)粗细

    设置plot方法的关键字参数linewidth(或lw)可以改变线的粗细,其值为浮点数。

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.linspace(0, 2 * np.pi, 100)
    y1, y2 = np.sin(x), np.cos(x)
    
    plt.plot(x, y1, c='r', ls='--', lw=3)
    plt.plot(x, y2, c='#526922', ls='-.')
    plt.show()

    4. marker

    以下关键字参数可以用来设置marker的样式:

    • marker
    • markeredgecolor 或 mec
    • markeredgewidth 或 mew
    • markerfacecolor 或 mfc
    • markerfacecoloralt 或 mfcalt
    • markersize 或 ms

    其中marker可取值为:

    • '.': point marker
    • ',': pixel marker
    • 'o': circle marker
    • 'v': triangle_down marker
    • '^': triangle_up marker
    • '<': triangle_left marker
    • '>': triangle_right marker
    • '1': tri_down marker
    • '2': tri_up marker
    • '3': tri_left marker
    • '4': tri_right marker
    • 's': square marker
    • 'p': pentagon marker
    • '*': star marker
    • 'h': hexagon1 marker
    • 'H': hexagon2 marker
    • '+': plus marker
    • 'x': x marker
    • 'D': diamond marker
    • 'd': thin_diamond marker
    • '|': vline marker
    • '_': hline marker

    例如:

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.linspace(0, 2 * np.pi, 10)
    y1, y2 = np.sin(x), np.cos(x)
    
    plt.plot(x, y1, marker='o', mec='r', mfc='w')
    plt.plot(x, y2, marker='*', ms=10)
    plt.show()

    另外,marker关键字参数可以和color以及linestyle这两个关键字参数合并为一个字符串。例如:

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.linspace(0, 2 * np.pi, 10)
    y1, y2 = np.sin(x), np.cos(x)
    
    plt.plot(x, y1, 'ro-')
    plt.plot(x, y2, 'g*:', ms=10)
    plt.show()

    The kwargs are Line2D properties:

    PropertyDescription
    agg_filter unknown
    alpha float (0.0 transparent through 1.0 opaque)
    animated [True | False]
    antialiased or aa [True | False]
    axes an Axes instance
    clip_box matplotlib.transforms.Bbox instance
    clip_on [True | False]
    clip_path [ (PathTransform) | Patch | None ]
    color or c any matplotlib color
    contains a callable function
    dash_capstyle [‘butt’ | ‘round’ | ‘projecting’]
    dash_joinstyle [‘miter’ | ‘round’ | ‘bevel’]
    dashes sequence of on/off ink in points
    drawstyle [‘default’ | ‘steps’ | ‘steps-pre’ | ‘steps-mid’ | ‘steps-post’]
    figure matplotlib.figure.Figure instance
    fillstyle [‘full’ | ‘left’ | ‘right’ | ‘bottom’ | ‘top’ | ‘none’]
    gid an id string
    label string or anything printable with ‘%s’ conversion.
    linestyle or ls ['-' | '--' | '-.' | ':' | 'None' | ' | '']
    linewidth or lw float value in points
    lod [True | False]
    marker valid marker style
    markeredgecolor or mec any matplotlib color
    markeredgewidth or mew float value in points
    markerfacecolor or mfc any matplotlib color
    markerfacecoloralt or mfcalt any matplotlib color
    markersize or ms float
    markevery [None | int | length-2 tuple of int | slice | list/array of int | float | length-2 tuple of float]
    path_effects unknown
    picker float distance in points or callable pick function fn(artist, event)
    pickradius float distance in points
    rasterized [True | False | None]
    sketch_params unknown
    snap unknown
    solid_capstyle [‘butt’ | ‘round’ | ‘projecting’]
    solid_joinstyle [‘miter’ | ‘round’ | ‘bevel’]
    transform matplotlib.transforms.Transform instance
    url a url string
    visible [True | False]
    xdata 1D array
    ydata 1D array
    zorder any number

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我的支持。

  • 相关阅读:
    LintCode2016年8月22日算法比赛----骰子求和
    LintCode2016年8月22日算法比赛----平面列表
    LintCode2016年8月22日算法比赛----将数组重新排序以构造最小值
    LintCode2016年8月22日算法比赛----克隆二叉树
    Leetcode算法比赛----Longest Absolute File Path
    Leetcode算法比赛----First Unique Character in a String
    vue运行报错Error: listen EADDRNOTAVAIL 192.168.1.105:8080
    vue使用lrz插件压缩图片
    <input type="file">原型难看
    vue创建全局变量以及全局方法
  • 原文地址:https://www.cnblogs.com/onemorepoint/p/7482644.html
Copyright © 2020-2023  润新知