matplotlib.axes.Axes.plot#

Axes.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',['#1f77b4','#ff7f0e','#2ca02c','#d62728','#9467bd','#8c564b','#e377c2','#7f7f7f','#bcbd22','#17becf'])).

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

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.axes.Axes.plot#

Decay

Decay

The Bayes update

The Bayes update

The double pendulum problem

The double pendulum problem

Multiple Axes animation

Multiple Axes animation

Animated 3D random walk

Animated 3D random walk

Animated line plot

Animated line plot

Matplotlib unchained

Matplotlib unchained

Axes with a fixed physical size

Axes with a fixed physical size

Parasite Simple

Parasite Simple

Simple Axisline4

Simple Axisline4

Axis line styles

Axis line styles

Parasite Axes demo

Parasite Axes demo

Parasite axis demo

Parasite axis demo

Custom spines with axisartist

Custom spines with axisartist

Simple Axisline

Simple Axisline

Color by y-value

Color by y-value

Colors in the default property cycle

Colors in the default property cycle

Color Demo

Color Demo

Selecting individual colors from a colormap

Selecting individual colors from a colormap

Mouse move and click events

Mouse move and click events

Cross-hair cursor

Cross-hair cursor

Data browser

Data browser

Keypress event

Keypress event

Legend picking

Legend picking

Looking glass

Looking glass

Path editor

Path editor

Pick event demo

Pick event demo

Pick event demo 2

Pick event demo 2

Resampling Data

Resampling Data

Timers

Timers

Contour corner mask

Contour corner mask

Contour plot of irregularly spaced data

Contour plot of irregularly spaced data

pcolormesh grids and shading

pcolormesh grids and shading

Spectrogram

Spectrogram

Triinterp Demo

Triinterp Demo

Infinite lines

Infinite lines

Plotting categorical variables

Plotting categorical variables

Cross spectral density (CSD)

Cross spectral density (CSD)

Curve with error band

Curve with error band

EventCollection Demo

EventCollection Demo

fill_between with transparency

fill_between with transparency

Fill the area between two lines

Fill the area between two lines

Fill the area between two vertical lines

Fill the area between two vertical lines

Dashed line style configuration

Dashed line style configuration

Lines with a ticked patheffect

Lines with a ticked patheffect

Marker reference

Marker reference

Markevery Demo

Markevery Demo

Mapping marker properties to multivariate data

Mapping marker properties to multivariate data

Power spectral density (PSD)

Power spectral density (PSD)

Line plot

Line plot

Shade regions defined by a logical mask using fill_between

Shade regions defined by a logical mask using fill_between

Step Demo

Step Demo

Timeline with lines, dates, and text

Timeline with lines, dates, and text

hlines and vlines

hlines and vlines

Identify whether artists intersect

Identify whether artists intersect

Custom projection

Custom projection

Patheffect Demo

Patheffect Demo

Apply SVG filter to a line

Apply SVG filter to a line

TickedStroke patheffect

TickedStroke patheffect

Zorder Demo

Zorder Demo

Plot 2D data on 3D plot

Plot 2D data on 3D plot

3D box surface plot

3D box surface plot

Parametric curve

Parametric curve

Lorenz attractor

Lorenz attractor

2D and 3D Axes in same figure

2D and 3D Axes in same figure

Polar plot

Polar plot

Polar legend

Polar legend

Multiple lines using pyplot

Multiple lines using pyplot

Asinh scale

Asinh scale

Loglog aspect

Loglog aspect

Symlog scale

Symlog scale

Ellipse with orientation arrow demo

Ellipse with orientation arrow demo

PathPatch object

PathPatch object

Bezier curve

Bezier curve

Anatomy of a figure

Anatomy of a figure

Integral as the area under a curve

Integral as the area under a curve

Stock prices over 32 years

Stock prices over 32 years

XKCD

XKCD

Anscombe's quartet

Anscombe's quartet

Ishikawa Diagram

Ishikawa Diagram

Radar chart (aka spider or star chart)

Radar chart (aka spider or star chart)

Centered spines with arrows

Centered spines with arrows

Multiple y-axis with Spines

Multiple y-axis with Spines

Spine placement

Spine placement

Spines

Spines

Boxplots

Boxplots

Dark background style sheet

Dark background style sheet

FiveThirtyEight style sheet

FiveThirtyEight style sheet

ggplot style sheet

ggplot style sheet

Align labels and titles

Align labels and titles

Programmatically control subplot adjustment

Programmatically control subplot adjustment

Axes box aspect

Axes box aspect

Axes Demo

Axes Demo

Controlling view limits using margins and sticky_edges

Controlling view limits using margins and sticky_edges

Axes properties

Axes properties

Draw regions that span an Axes

Draw regions that span an Axes

Broken axis

Broken axis

Resize Axes with constrained layout

Resize Axes with constrained layout

Resize Axes with tight layout

Resize Axes with tight layout

Figure labels: suptitle, supxlabel, supylabel

Figure labels: suptitle, supxlabel, supylabel

Inverted axis

Inverted axis

Secondary Axis

Secondary Axis

Share axis limits and views

Share axis limits and views

Figure subfigures

Figure subfigures

Multiple subplots

Multiple subplots

Create multiple subplots using plt.subplots

Create multiple subplots using plt.subplots

Plots with different scales

Plots with different scales

Accented text

Accented text

Align y-labels

Align y-labels

Scale invariant angle label

Scale invariant angle label

Annotate transform

Annotate transform

Annotating a plot

Annotating a plot

Annotate plots

Annotate plots

Annotate polar plots

Annotate polar plots

Compose custom legends

Compose custom legends

Date tick labels

Date tick labels

AnnotationBbox demo

AnnotationBbox demo

Format ticks using engineering notation

Format ticks using engineering notation

Annotation arrow style reference

Annotation arrow style reference

Legend using pre-defined labels

Legend using pre-defined labels

Legend Demo

Legend Demo

Mathtext

Mathtext

Math fontfamily

Math fontfamily

Multiline

Multiline

Render math equations using TeX

Render math equations using TeX

Text properties

Text properties

Text rotation angle in data coordinates

Text rotation angle in data coordinates

Title positioning

Title positioning

Text watermark

Text watermark

Center labels between ticks

Center labels between ticks

Format date ticks using ConciseDateFormatter

Format date ticks using ConciseDateFormatter

Date Demo Convert

Date Demo Convert

Custom tick formatter for time series

Custom tick formatter for time series

Date precision and epochs

Date precision and epochs

Dollar ticks

Dollar ticks

SI prefixed offsets and natural order of magnitudes

SI prefixed offsets and natural order of magnitudes

Major and minor ticks

Major and minor ticks

Multilevel (nested) ticks

Multilevel (nested) ticks

Set default y-axis tick labels on the right

Set default y-axis tick labels on the right

Setting tick labels from a list of values

Setting tick labels from a list of values

Move x-axis tick labels to the top

Move x-axis tick labels to the top

Rotated tick labels

Rotated tick labels

Evans test

Evans test

CanvasAgg demo

CanvasAgg demo

Nested GridSpecs

Nested GridSpecs

Simple Legend01

Simple Legend01

Simple Legend02

Simple Legend02

Annotated cursor

Annotated cursor

Buttons

Buttons

Check buttons

Check buttons

Cursor

Cursor

Multicursor

Multicursor

Rectangle and ellipse selectors

Rectangle and ellipse selectors

Slider

Slider

Snap sliders to discrete values

Snap sliders to discrete values

Span Selector

Span Selector

Textbox

Textbox

fill_between(x1, y1, z1, x2, y2, z2)

fill_between(x1, y1, z1, x2, y2, z2)

plot(xs, ys, zs)

plot(xs, ys, zs)

fill_between(x, y1, y2)

fill_between(x, y1, y2)

plot(x, y)

plot(x, y)

tricontour(x, y, z)

tricontour(x, y, z)

tricontourf(x, y, z)

tricontourf(x, y, z)

tripcolor(x, y, z)

tripcolor(x, y, z)

Artist tutorial

Artist tutorial

Animations using Matplotlib

Animations using Matplotlib

Faster rendering by using blitting

Faster rendering by using blitting

Styling with cycler

Styling with cycler

Path Tutorial

Path Tutorial

Transformations Tutorial

Transformations Tutorial

Arranging multiple Axes in a Figure

Arranging multiple Axes in a Figure

Autoscaling Axis

Autoscaling Axis

Axis scales

Axis scales

Axis ticks

Axis ticks

Plotting dates and strings

Plotting dates and strings

Constrained layout guide

Constrained layout guide

Legend guide

Legend guide

Tight layout guide

Tight layout guide

Specifying colors

Specifying colors

Quick start guide

Quick start guide

Annotations

Annotations

Text in Matplotlib

Text in Matplotlib