matplotlib.pyplot.plot#

matplotlib.pyplot.plot(*args,scalex=True,scaley=True,data=None,**kwargs)[source]#

Plot y versus x as lines and/or markers.

Call signatures:

plot([x],y,[fmt],*,data=None,**kwargs)plot([x],y,[fmt],[x2],y2,[fmt2],...,**kwargs)

The coordinates of the points or line nodes are given byx,y.

The optional parameterfmt is a convenient way for defining basicformatting like color, marker and linestyle. It's a shortcut stringnotation described in theNotes section below.

>>>plot(x,y)# plot x and y using default line style and color>>>plot(x,y,'bo')# plot x and y using blue circle markers>>>plot(y)# plot y using x as index array 0..N-1>>>plot(y,'r+')# ditto, but with red plusses

You can useLine2D properties as keyword arguments for morecontrol on the appearance. Line properties andfmt can be mixed.The following two calls yield identical results:

>>>plot(x,y,'go--',linewidth=2,markersize=12)>>>plot(x,y,color='green',marker='o',linestyle='dashed',...linewidth=2,markersize=12)

When conflicting withfmt, keyword arguments take precedence.

Plotting labelled data

There's a convenient way for plotting objects with labelled data (i.e.data that can be accessed by indexobj['y']). Instead of givingthe data inx andy, you can provide the object in thedataparameter and just give the labels forx andy:

>>>plot('xlabel','ylabel',data=obj)

All indexable objects are supported. This could e.g. be adict, apandas.DataFrame or a structured numpy array.

Plotting multiple sets of data

There are various ways to plot multiple sets of data.

  • The most straight forward way is just to callplot multiple times.Example:

    >>>plot(x1,y1,'bo')>>>plot(x2,y2,'go')
  • Ifx and/ory are 2D arrays, a separate data set will be drawnfor every column. If bothx andy are 2D, they must have thesame shape. If only one of them is 2D with shape (N, m) the othermust have length N and will be used for every data set m.

    Example:

    >>>x=[1,2,3]>>>y=np.array([[1,2],[3,4],[5,6]])>>>plot(x,y)

    is equivalent to:

    >>>forcolinrange(y.shape[1]):...plot(x,y[:,col])
  • The third way is to specify multiple sets of[x],y,[fmt]groups:

    >>>plot(x1,y1,'g^',x2,y2,'g-')

    In this case, any additional keyword argument applies to alldatasets. Also, this syntax cannot be combined with thedataparameter.

By default, each line is assigned a different style specified by a'style cycle'. Thefmt and line property parameters are onlynecessary if you want explicit deviations from these defaults.Alternatively, you can also change the style cycle usingrcParams["axes.prop_cycle"] (default:cycler('color',[(0.12156862745098039,0.4666666666666667,0.7058823529411765),(1.0,0.4980392156862745,0.054901960784313725),(0.17254901960784313,0.6274509803921569,0.17254901960784313),(0.8392156862745098,0.15294117647058825,0.1568627450980392),(0.5803921568627451,0.403921568627451,0.7411764705882353),(0.5490196078431373,0.33725490196078434,0.29411764705882354),(0.8901960784313725,0.4666666666666667,0.7607843137254902),(0.4980392156862745,0.4980392156862745,0.4980392156862745),(0.7372549019607844,0.7411764705882353,0.13333333333333333),(0.09019607843137255,0.7450980392156863,0.8117647058823529)])).

Parameters:
x, yarray-like or float

The horizontal / vertical coordinates of the data points.x values are optional and default torange(len(y)).

Commonly, these parameters are 1D arrays.

They can also be scalars, or two-dimensional (in that case, thecolumns represent separate data sets).

These arguments cannot be passed as keywords.

fmtstr, optional

A format string, e.g. 'ro' for red circles. See theNotessection for a full description of the format strings.

Format strings are just an abbreviation for quickly settingbasic line properties. All of these and more can also becontrolled by keyword arguments.

This argument cannot be passed as keyword.

dataindexable object, optional

An object with labelled data. If given, provide the label names toplot inx andy.

Note

Technically there's a slight ambiguity in calls where thesecond label is a validfmt.plot('n','o',data=obj)could beplt(x,y) orplt(y,fmt). In such cases,the former interpretation is chosen, but a warning is issued.You may suppress the warning by adding an empty format stringplot('n','o','',data=obj).

Returns:
list ofLine2D

A list of lines representing the plotted data.

Other Parameters:
scalex, scaleybool, default: True

These parameters determine if the view limits are adapted to thedata limits. The values are passed on toautoscale_view.

**kwargsLine2D properties, optional

kwargs are used to specify properties like a line label (forauto legends), linewidth, antialiasing, marker face color.Example:

>>>plot([1,2,3],[1,2,3],'go-',label='line 1',linewidth=2)>>>plot([1,2,3],[1,4,9],'rs',label='line 2')

If you specify multiple lines with one plot call, the kwargs applyto all those lines. In case the label object is iterable, eachelement is used as labels for each set of data.

Here is a list of availableLine2D properties:

Property

Description

agg_filter

a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array and two offsets from the bottom left corner of the image

alpha

float or None

animated

bool

antialiased oraa

bool

clip_box

BboxBase or None

clip_on

bool

clip_path

Patch or (Path, Transform) or None

color orc

color

dash_capstyle

CapStyle or {'butt', 'projecting', 'round'}

dash_joinstyle

JoinStyle or {'miter', 'round', 'bevel'}

dashes

sequence of floats (on/off ink in points) or (None, None)

data

(2, N) array or two 1D arrays

drawstyle ords

{'default', 'steps', 'steps-pre', 'steps-mid', 'steps-post'}, default: 'default'

figure

Figure orSubFigure

fillstyle

{'full', 'left', 'right', 'bottom', 'top', 'none'}

gapcolor

color or None

gid

str

in_layout

bool

label

object

linestyle orls

{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}

linewidth orlw

float

marker

marker style string,Path orMarkerStyle

markeredgecolor ormec

color

markeredgewidth ormew

float

markerfacecolor ormfc

color

markerfacecoloralt ormfcalt

color

markersize orms

float

markevery

None or int or (int, int) or slice or list[int] or float or (float, float) or list[bool]

mouseover

bool

path_effects

list ofAbstractPathEffect

picker

float or callable[[Artist, Event], tuple[bool, dict]]

pickradius

float

rasterized

bool

sketch_params

(scale: float, length: float, randomness: float)

snap

bool or None

solid_capstyle

CapStyle or {'butt', 'projecting', 'round'}

solid_joinstyle

JoinStyle or {'miter', 'round', 'bevel'}

transform

unknown

url

str

visible

bool

xdata

1D array

ydata

1D array

zorder

float

See also

scatter

XY scatter plot with markers of varying size and/or color ( sometimes also called bubble chart).

Notes

Note

This is thepyplot wrapper foraxes.Axes.plot.

Format Strings

A format string consists of a part for color, marker and line:

fmt='[marker][line][color]'

Each of them is optional. If not provided, the value from the stylecycle is used. Exception: Ifline is given, but nomarker,the data will be a line without markers.

Other combinations such as[color][marker][line] are alsosupported, but note that their parsing may be ambiguous.

Markers

character

description

'.'

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

'8'

octagon marker

's'

square marker

'p'

pentagon marker

'P'

plus (filled) marker

'*'

star marker

'h'

hexagon1 marker

'H'

hexagon2 marker

'+'

plus marker

'x'

x marker

'X'

x (filled) marker

'D'

diamond marker

'd'

thin_diamond marker

'|'

vline marker

'_'

hline marker

Line Styles

character

description

'-'

solid line style

'--'

dashed line style

'-.'

dash-dot line style

':'

dotted line style

Example format strings:

'b'# blue markers with default shape'or'# red circles'-g'# green solid line'--'# dashed line with default color'^k:'# black triangle_up markers connected by a dotted line

Colors

The supported color abbreviations are the single letter codes

character

color

'b'

blue

'g'

green

'r'

red

'c'

cyan

'm'

magenta

'y'

yellow

'k'

black

'w'

white

and the'CN' colors that index into the default property cycle.

If the color is the only part of the format string, you canadditionally use anymatplotlib.colors spec, e.g. full names('green') or hex strings ('#008000').

Examples usingmatplotlib.pyplot.plot#

Frame grabbing

Frame grabbing

Color by y-value

Color by y-value

Triinterp Demo

Triinterp Demo

Plotting masked and NaN values

Plotting masked and NaN values

Scatter plot with masked values

Scatter plot with masked values

Line plot

Line plot

Stairs Demo

Stairs Demo

Step Demo

Step Demo

Coords Report

Coords Report

Customize Rc

Customize Rc

Findobj Demo

Findobj Demo

Multipage PDF

Multipage PDF

Print image to stdout

Print image to stdout

Set and get properties

Set and get properties

transforms.offset_copy

transforms.offset_copy

Zorder Demo

Zorder Demo

Polar plot

Polar plot

Polar legend

Polar legend

Simple plot

Simple plot

Text and mathtext using pyplot

Text and mathtext using pyplot

Multiple lines using pyplot

Multiple lines using pyplot

Two subplots using pyplot

Two subplots using pyplot

Custom scale

Custom scale

Dolphins

Dolphins

Solarized Light stylesheet

Solarized Light stylesheet

Align labels and titles

Align labels and titles

Custom Figure subclasses

Custom Figure subclasses

Manage multiple figures in pyplot

Manage multiple figures in pyplot

Shared axis

Shared axis

Multiple subplots

Multiple subplots

Legend using pre-defined labels

Legend using pre-defined labels

Controlling style of text and labels using a dictionary

Controlling style of text and labels using a dictionary

Title positioning

Title positioning

Placing date ticks using recurrence rules

Placing date ticks using recurrence rules

CanvasAgg demo

CanvasAgg demo

Tool Manager

Tool Manager

Pyplot tutorial

Pyplot tutorial

Path effects guide

Path effects guide

Customizing Matplotlib with style sheets and rcParams

Customizing Matplotlib with style sheets and rcParams

Quick start guide

Quick start guide