• 绘图:Matplotlib


    用于绘制一些数据图,同学推荐的,挺好用。非常好的官网文档:http://matplotlib.org/contents.html

    0. 安装

    可以直接pip install,还有一些依赖就按照提示来吧,具体也忘了。

    1. 基本画图

    import matplotlib.pyplot as plt
    xs = [1,2,3,4]
    ys = [1,2,3,4]
    plt.plot(xs, ys)
    plt.show()

    xs表示点的x坐标,ys表示点的y坐标,所画的点就是(xs[i], ys[i]),默认情况下会依次用直线把点连起来。此时可以看到弹出一张过原点斜率为1的直线。注意show过后,不能再次show了,需要再plot画一次。说明这个plot模块是有状态的。

    2. 散点

    可以设置画图点的模式(markers),不使用直线将点连起来,而就是画个散点即可:

    import matplotlib.pyplot as plt
    xs = [1,2,3,4]
    ys = [1,2,3,4]
    plt.plot(xs, ys, "ob");
    plt.show()

    此时看到的就是几个离散的点。这里"ob"表示使用圆形的marker并且颜色是蓝色(blue),其中filled_markers可以是:

    'o' - 圆点, 'v' - 倒三角, '^' - 正三角,  '<' - 左三角, '>' - 右三角, '8', 's' - 正方形, 'p' - 凸五边形, '*' - 五角星, 'h', 'H', 'D' - 菱形, 'd' - 扁菱形

    All possible markers are defined here:

    markerdescription
    ”.” point
    ”,” pixel
    “o” circle
    “v” triangle_down
    “^” triangle_up
    “<” triangle_left
    “>” triangle_right
    “1” tri_down
    “2” tri_up
    “3” tri_left
    “4” tri_right
    “8” octagon
    “s” square
    “p” pentagon
    “*” star
    “h” hexagon1
    “H” hexagon2
    “+” plus
    “x” x
    “D” diamond
    “d” thin_diamond
    “|” vline
    “_” hline
    TICKLEFT tickleft
    TICKRIGHT tickright
    TICKUP tickup
    TICKDOWN tickdown
    CARETLEFT caretleft
    CARETRIGHT caretright
    CARETUP caretup
    CARETDOWN caretdown
    “None” nothing
    None nothing
    ” “ nothing
    “” nothing
    '$...$' render the string using mathtext.
    verts a list of (x, y) pairs used for Path vertices. The center of the marker is located at (0,0) and the size is normalized.
    path Path instance.
    (numsidesstyleangle) see below

     http://matplotlib.org/api/markers_api.html#module-matplotlib.markers

    3. 填充数据

    可以结合numpy来快速的填充数据,画出图形

    >>> import numpy as np
    >>> import matplotlib.pyplot as plt
    >>> x=np.arange(0, 4, 0.05) >>> x array([ 0. , 0.05, 0.1 , 0.15, 0.2 , 0.25, 0.3 , 0.35, 0.4 , 0.45, 0.5 , 0.55, 0.6 , 0.65, 0.7 , 0.75, 0.8 , 0.85, 0.9 , 0.95, 1. , 1.05, 1.1 , 1.15, 1.2 , 1.25, 1.3 , 1.35, 1.4 , 1.45, 1.5 , 1.55, 1.6 , 1.65, 1.7 , 1.75, 1.8 , 1.85, 1.9 , 1.95, 2. , 2.05, 2.1 , 2.15, 2.2 , 2.25, 2.3 , 2.35, 2.4 , 2.45, 2.5 , 2.55, 2.6 , 2.65, 2.7 , 2.75, 2.8 , 2.85, 2.9 , 2.95, 3. , 3.05, 3.1 , 3.15, 3.2 , 3.25, 3.3 , 3.35, 3.4 , 3.45, 3.5 , 3.55, 3.6 , 3.65, 3.7 , 3.75, 3.8 , 3.85, 3.9 , 3.95]) >>> plt.plot(x, np.sin(0.5 * np.pi * x)) [<matplotlib.lines.Line2D object at 0x11314a810>] >>> plt.show()

     4. 线条样式

    Controlling line properties

    Lines have many attributes that you can set: linewidth, dash style, antialiased, etc; see matplotlib.lines.Line2D. There are several ways to set line properties

    • Use keyword args:

      plt.plot(x, y, linewidth=2.0)
      
    • Use the setter methods of the Line2D instance. plot returns a list of lines; e.g., line1, line2 plot(x1,y1,x2,y2). Below I have only one line so it is a list of length 1. I use tuple unpacking in the line, plot(x, y, 'o') to get the first element of the list:

      line, = plt.plot(x, y, '-')
      line.set_antialiased(False) # turn off antialising
      
    • Use the setp() command. The example below uses a MATLAB-style command to set multiple properties on a list of lines. setpworks transparently with a list of objects or a single object. You can either use python keyword arguments or MATLAB-style string/value pairs:

      lines = plt.plot(x1, y1, x2, y2)
      # use keyword args
      plt.setp(lines, color='r', linewidth=2.0)
      # or MATLAB style string value pairs
      plt.setp(lines, 'color', 'r', 'linewidth', 2.0)
      

    Here are the available Line2D properties.

    PropertyValue Type
    alpha float
    animated [True | False]
    antialiased or aa [True | False]
    clip_box a matplotlib.transform.Bbox instance
    clip_on [True | False]
    clip_path a Path instance and a Transform instance, a Patch
    color or c any matplotlib color
    contains the hit testing function
    dash_capstyle ['butt' | 'round' | 'projecting']
    dash_joinstyle ['miter' | 'round' | 'bevel']
    dashes sequence of on/off ink in points
    data (np.array xdata, np.array ydata)
    figure a matplotlib.figure.Figure instance
    label any string
    linestyle or ls '-' | '--' | '-.' | ':' | 'steps' | ...]
    linewidth or lw float value in points
    lod [True | False]
    marker '+' | ',' | '.' | '1' | '2' | '3' | '4' ]
    markeredgecolor or mec any matplotlib color
    markeredgewidth or mew float value in points
    markerfacecolor or mfc any matplotlib color
    markersize or ms float
    markevery [ None | integer | (startind, stride) ]
    picker used in interactive line selection
    pickradius the line pick selection radius
    solid_capstyle ['butt' | 'round' | 'projecting']
    solid_joinstyle ['miter' | 'round' | 'bevel']
    transform a matplotlib.transforms.Transform instance
    visible [True | False]
    xdata np.array
    ydata np.array
    zorder any number

  • 相关阅读:
    洛谷 P4318 完全平方数 二分+容斥
    洛谷 P4899 [IOI2018] werewolf 狼人 克鲁斯卡尔重构树+主席树
    洛谷 P3997 [SHOI2013]扇形面积并 线段树
    洛谷 P3268 [JLOI2016]圆的异或并 扫描线
    OI有关 学习网站
    Linux命令基础——stat-readdir-dup2
    Linux命令基础——makefile+gdb+IO
    Linux命令基础——vim+gcc+ibrary
    Linux命令基础——常用命令
    MFC学习笔记——07-MFC_20day
  • 原文地址:https://www.cnblogs.com/lailailai/p/4580731.html
Copyright © 2020-2023  润新知