• 绘图: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

  • 相关阅读:
    Lucene学习
    json-lib转化java对象,是否转化为null的属性
    maven项目导入war包
    服务器运维管理
    [ jquery 效果 delay(duration,[queueName]) ] 此方法用于对队列中的下一项的执行设置延迟
    [ jquery 效果 stop(stopAll,goToEnd) ] 此方法用于停止所有在指定元素上正在运行的动画,如果队列中有等待执行的动画(并且clearQueue没有设为true),他们将被马上执行
    [ css 过渡 transition ] transition新增过渡属性的实例演示
    [ css 动画 animation ] animation新增动画属性的实例演示
    [ css 过渡和动画 transition animation ] 过渡和动画听课笔记记录
    [ jquery 效果 animate(opation[speed,[easing],[fn]]) ] 此方法用于通过自定义调整目标的变化至指定目标来实现所有匹配元素的效果,并在动画完成后可选地触发一个回调函数
  • 原文地址:https://www.cnblogs.com/lailailai/p/4580731.html
Copyright © 2020-2023  润新知