微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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:

character description
'-' 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:

character color
‘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:

marker symbol description
"."

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐