• python matplotlib 绘图线条类型和颜色选择


    import numpy as np
    import matplotlib.pyplot as plt
    
    linestyle_str = [
         ('solid', 'solid'),      # Same as (0, ()) or '-'
         ('dotted', 'dotted'),    # Same as (0, (1, 1)) or '.'
         ('dashed', 'dashed'),    # Same as '--'
         ('dashdot', 'dashdot')]  # Same as '-.'
    
    linestyle_tuple = [
         ('loosely dotted',        (0, (1, 10))),
         ('dotted',                (0, (1, 1))),
         ('densely dotted',        (0, (1, 1))),
    
         ('loosely dashed',        (0, (5, 10))),
         ('dashed',                (0, (5, 5))),
         ('densely dashed',        (0, (5, 1))),
    
         ('loosely dashdotted',    (0, (3, 10, 1, 10))),
         ('dashdotted',            (0, (3, 5, 1, 5))),
         ('densely dashdotted',    (0, (3, 1, 1, 1))),
    
         ('dashdotdotted',         (0, (3, 5, 1, 5, 1, 5))),
         ('loosely dashdotdotted', (0, (3, 10, 1, 10, 1, 10))),
         ('densely dashdotdotted', (0, (3, 1, 1, 1, 1, 1)))]
    
    
    def plot_linestyles(ax, linestyles):
        X, Y = np.linspace(0, 100, 10), np.zeros(10)
        yticklabels = []
    
        for i, (name, linestyle) in enumerate(linestyles):
            ax.plot(X, Y+i, linestyle=linestyle, linewidth=1.5, color='black')
            yticklabels.append(name)
    
        ax.set(xticks=[], ylim=(-0.5, len(linestyles)-0.5),
               yticks=np.arange(len(linestyles)), yticklabels=yticklabels)
    
        # For each line style, add a text annotation with a small offset from
        # the reference point (0 in Axes coords, y tick value in Data coords).
        for i, (name, linestyle) in enumerate(linestyles):
            ax.annotate(repr(linestyle),
                        xy=(0.0, i), xycoords=ax.get_yaxis_transform(),
                        xytext=(-6, -12), textcoords='offset points',
                        color="blue", fontsize=8, ha="right", family="monospace")
    
    
    fig, (ax0, ax1) = plt.subplots(2, 1, gridspec_kw={'height_ratios': [1, 3]},
                                   figsize=(10, 8))
    
    plot_linestyles(ax0, linestyle_str[::-1])
    plot_linestyles(ax1, linestyle_tuple[::-1])
    
    plt.tight_layout()
    plt.show()

     

    REF

    https://matplotlib.org/3.1.0/gallery/lines_bars_and_markers/linestyles.html

    The following format string characters are accepted to control the line style or marker:

    characterdescription
    '-' solid line style
    '--' dashed line style
    '-.' dash-dot line style
    ':' dotted line style
    '.' 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

    The following color abbreviations are supported:

    charactercolor
    ‘b’ blue
    ‘g’ green
    ‘r’ red
    ‘c’ cyan
    ‘m’ magenta
    ‘y’ yellow
    ‘k’ black
    ‘w’ white

    REF

    good demos

    https://matplotlib.org/2.1.1/api/_as_gen/matplotlib.pyplot.plot.html

    All possible markers are defined here:

    markersymboldescription
    "." m00 point
    "," m01 pixel
    "o" m02 circle
    "v" m03 triangle_down
    "^" m04 triangle_up
    "<" m05 triangle_left
    ">" m06 triangle_right
    "1" m07 tri_down
    "2" m08 tri_up
    "3" m09 tri_left
    "4" m10 tri_right
    "8" m11 octagon
    "s" m12 square
    "p" m13 pentagon
    "P" m23 plus (filled)
    "*" m14 star
    "h" m15 hexagon1
    "H" m16 hexagon2
    "+" m17 plus
    "x" m18 x
    "X" m24 x (filled)
    "D" m19 diamond
    "d" m20 thin_diamond
    "|" m21 vline
    "_" m22 hline
    0 (TICKLEFT) m25 tickleft
    1 (TICKRIGHT) m26 tickright
    2 (TICKUP) m27 tickup
    3 (TICKDOWN) m28 tickdown
    4 (CARETLEFT) m29 caretleft
    5 (CARETRIGHT) m30 caretright
    6 (CARETUP) m31 caretup
    7 (CARETDOWN) m32 caretdown
    8 (CARETLEFTBASE) m33 caretleft (centered at base)
    9 (CARETRIGHTBASE) m34 caretright (centered at base)
    10 (CARETUPBASE) m35 caretup (centered at base)
    11 (CARETDOWNBASE) m36 caretdown (centered at base)
    "None"" or ""   nothing
    '$...$' m37 Render the string using mathtext. E.g "$f$" for marker showing the letter f.
    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, such that the created path is encapsulated inside the unit cell.
    path   Path instance.
    (numsides, style, angle)  

    The marker can also be a tuple (numsides, style, angle), which will create a custom, regular symbol.

    numsides:
    the number of sides
    style:

    the style of the regular symbol:

    • 0: a regular polygon
    • 1: a star-like symbol
    • 2: an asterisk
    • 3: a circle (numsides and angle is ignored); deprecated.
    angle:
    the angle of rotation of the symbol

    REF

    https://matplotlib.org/3.1.0/api/markers_api.html

    REF

    https://matplotlib.org/stable/tutorials/colors/colors.html

    https://matplotlib.org/stable/gallery/color/named_colors.html

  • 相关阅读:
    学习使用Markdown
    开发落网电台windows phone 8应用的计划(10)-----收尾
    MyEclipse10安装SVN插件
    HBuilder连接码云
    sqlserver2004数据库备份,在sqlserver2008还原
    fiddler抓包时出现了tunnel to ......443
    Fiddler抓取Android真机上的HTTPS包
    Fiddler证书安装(查看HTTPS)
    Mac安装普元移动开发平台Primeton Mobile_7.2LA
    Mac下安装MySQL、Workbench以及建数据库建表最基础操作
  • 原文地址:https://www.cnblogs.com/emanlee/p/14470998.html
Copyright © 2020-2023  润新知