### Navigation

- index
- modules |
- next |
- previous |
- home|
- examples|
- tutorials|
- pyplot|
- docs »
- The Matplotlib API »
- matplotlib.pyplot »

# matplotlib.pyplot.plot

`matplotlib.pyplot.``plot`(*args, **kwargs)

  Plot lines and/or markers to the `Axes`. args is a variable length argument, allowing for multiple x, y pairs with an optional format string. For example, each of the following is legal:

      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

  If x and/or y is 2-dimensional, then the corresponding columns will be plotted.

  If used with labeled data, make sure that the color spec is not included as an element in data, as otherwise the last case `plot("v","r", data={"v":..., "r":...)` can be interpreted as the first case which would do `plot(v, r)` using the default line style and color.

  If not used with labeled data (i.e., without a data argument), an arbitrary number of x, y, fmt groups can be specified, as in:

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

  Return value is a list of lines that were added.

  By default, each line is assigned a different style specified by a ‘style cycle’. To change this behavior, you can edit the axes.prop_cycle rcParam.

  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

  In addition, you can specify colors in many weird and wonderful ways, including full names (`'green'`), hex strings (`'#008000'`), RGB or RGBA tuples (`(0,1,0,1)`) or grayscale intensities as a string (`'0.8'`). Of these, the string specifications can be used in place of a `fmt` group, but the tuple forms can be used only as `kwargs`.

  Line styles and colors are combined in a single format string, as in `'bo'` for blue circles.

  The kwargs can be used to set line properties (any property that has a `set_*` method). You can use this to set a line label (for auto legends), linewidth, anitialising, marker face color, etc. Here is an 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')
      axis([0, 4, 0, 10])
      legend()

  If you make multiple lines with one plot command, the kwargs apply to all those lines, e.g.:

      plot(x1, y1, x2, y2, antialiased=False)

  Neither line will be antialiased.

  You do not need to use format strings, which are just abbreviations. All of the line properties can be controlled by keyword arguments. For example, you can set the color, marker, linestyle, and markercolor with:

      plot(x, y, color='green', linestyle='dashed', marker='o',
           markerfacecolor='blue', markersize=12).

  See `Line2D` for details.

  The kwargs are `Line2D` properties:

  > Property | Description
  > --- | ---
  > `agg_filter` | unknown
  > `alpha` | float (0.0 transparent through 1.0 opaque)
  > `animated` | [True | False]
  > `antialiased` or aa | [True | False]
  > `axes` | an `Axes` instance
  > `clip_box` | a `matplotlib.transforms.Bbox` instance
  > `clip_on` | [True | False]
  > `clip_path` | [ (`Path`, `Transform`) | `Patch` | None ]
  > `color` or c | any matplotlib color
  > `contains` | a callable function
  > `dash_capstyle` | [‘butt’ | ‘round’ | ‘projecting’]
  > `dash_joinstyle` | [‘miter’ | ‘round’ | ‘bevel’]
  > `dashes` | sequence of on/off ink in points
  > `drawstyle` | [‘default’ | ‘steps’ | ‘steps-pre’ | ‘steps-mid’ | ‘steps-post’]
  > `figure` | a `matplotlib.figure.Figure` instance
  > `fillstyle` | [‘full’ | ‘left’ | ‘right’ | ‘bottom’ | ‘top’ | ‘none’]
  > `gid` | an id string
  > `label` | string or anything printable with ‘%s’ conversion.
  > `linestyle` or ls | [‘solid’ | ‘dashed’, ‘dashdot’, ‘dotted’ | (offset, on-off-dash-seq) | `'-'` | `'--'` | `'-.'` | `':'` | `'None'` | `' '` | `''`]
  > `linewidth` or lw | float value in points
  > `marker` | `A valid marker style`
  > `markeredgecolor` or mec | any matplotlib color
  > `markeredgewidth` or mew | float value in points
  > `markerfacecolor` or mfc | any matplotlib color
  > `markerfacecoloralt` or mfcalt | any matplotlib color
  > `markersize` or ms | float
  > `markevery` | [None | int | length-2 tuple of int | slice | list/array of int | float | length-2 tuple of float]
  > `path_effects` | unknown
  > `picker` | float distance in points or callable pick function `fn(artist, event)`
  > `pickradius` | float distance in points
  > `rasterized` | [True | False | None]
  > `sketch_params` | unknown
  > `snap` | unknown
  > `solid_capstyle` | [‘butt’ | ‘round’ | ‘projecting’]
  > `solid_joinstyle` | [‘miter’ | ‘round’ | ‘bevel’]
  > `transform` | a `matplotlib.transforms.Transform` instance
  > `url` | a url string
  > `visible` | [True | False]
  > `xdata` | 1D array
  > `ydata` | 1D array
  > `zorder` | any number

  kwargs scalex and scaley, if defined, are passed on to `autoscale_view()` to determine whether the x and y axes are autoscaled; the default is True.

  Note

  In addition to the above described arguments, this function can take a data keyword argument. If such a data argument is given, the following arguments are replaced by data[<arg>]:

  - All arguments with the following names: ‘x’, ‘y’.

## Examples using `matplotlib.pyplot.plot`

Simple animation examples

Saving an animation

MovieWriter

Custom projection

Custom scale

Contour Corner Mask

Tricontour Vs Griddata

Triinterp Demo

Scatter Masked

Agg Buffer

Anscombe’s Quartet

Arctest

Axes Demo

Axhspan Demo

Coords Report

Customize Rc

Dolphins

Figure Title

Findobj Demo

Ginput Demo

Invert Axes

Logo

Marker Path

Masked Demo

Multiline

Multipage PDF

Multiple Figs Demo

Nan Test

Print Stdout

Psd Demo

Set And Get

Shared Axis Demo

Simple Plot

Specgram Demo

Symlog Demo

Transoffset

Zorder Demo

Pyplot Annotate

Pyplot Formatstr

Pyplot Mathtext

Pyplot Scales

Pyplot Simple

Pyplot Three

Pyplot Two Subplots

Whats New 0.98.4 Legend

Fixing common date annoyances

Bachelor’s degrees by gender

Integral as the area under a curve

XKCD

Multiple subplots

Subplot Demo

STIX Fonts Demo

Controlling style of text and labels using a dictionary

Text Rotation Relative To Line

Titles Demo

Usetex Demo

Rotating custom tick labels

Pylab With GTK

Tool Manager

Pgf Fonts

Pgf Preamble

Pgf Texsystem

Simple Legend01

Buttons

Rectangle Selector

Slider Demo

Textbox

Customizing matplotlib

Pyplot tutorial

Usage Guide

Legend guide

Path effects guide