# Matplotlib Tutorial - Line Chart

We start from plotting the basic chart type - line chart. `plot` could easily plot out lines like Linear line or curved line, and also have different configuration such as colors, width, marker size, etc.

Simple Continuous Line Drawing
Simple Continuous Line Drawing

## Matplotlib Linear Line

``````# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 9, 10)
y = 2 * x
plt.plot(x, y, "b-")
plt.show()
``````

It plots the line of `y=2*x`, where x is in the range between 0 and 9. ``````plt.plot(x, y, "b-")
``````

It plots the data of `x` and `y` with a line style of `b` - blue color and `-` - solid line.

## Matplotlib Curved Line

``````# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 4 * np.pi, 1000)
y = np.sin(x)

plt.plot(x, y, "r--")

plt.show()
``````

It generates a sinusoidal waveform, and has the line style as color red - `r` and dashed line - `--`. ## Matplotlib Line Type

You could change the line type like width, color and line-style with different input arguments in `plt.plot()` function.

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

Parameters

Name Descritpion
`x, y` The horizontal / vertical coordinates of the data points
`fmt` A format string, e.g. `b-` for blue solid line.

`**kwargs`

Property Description
`color` or `c` any matplotlib color
`figure` a `Figure` instance
`label` object
`linestyle` or `ls` [‘solid’ | ‘dashed’, ‘dashdot’, ‘dotted’ | (offset, on-off-dash-seq) | `'-'`]
`linewidth` or `lw` line width in points
`marker` `A valid marker style`
`markersize` or `ms` `float`
`xdata` 1D array
`ydata` 1D array
`zorder` `float`

### Line Color

You have some methods to name the color in the `color` argument.

#### Single Letter Alias

The basic built-in colors have the alias as below,

Alias Color
`b` blue
`g` green
`r` red
`c` cyan
`m` magenta
`y` yellow
`k` black
`w` white #### HTML Hex String

You could pass an valid html hex string to the `color` parameter, like

``````color = "#f44265"
``````

#### RGB Tuple

You could also specify the color using an `R,G,B` tuple, where R, G, B value are in the range of `[0, 1]` instead of normal range of `[0, 255]`.

The color represented with html hex string above has the `RGB` value of `(0.9569, 0.2588, 0.3891)`.

``````color = (0.9569, 0.2588, 0.3891)
``````

### Line Style

Matplotlib has 4 built-in line styles,

Line Style
`-` `--` `:` `:-` ``````# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 4 * np.pi, 1000)

for index, line_style in enumerate(['-', '--', ':', '-.']):
y = np.sin(x - index*np.pi/2)
plt.plot(x, y, 'k', linestyle=line_style, lw=2)

plt.title("Line Style")
plt.grid(True)

plt.show()
`````` ### Line Width

You could specify the line width with the parameter `linewidth` as in

``````linewidth = 2 # unit is points
``````

or simply use its abbreviation,

``````lw = 2
``````
``````# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 20, 21)

for line_width in [0.5, 1, 2, 4, 8]:
y = line_width * x
plt.plot(x, y, 'k', linewidth=line_width)

plt.title("Line Width")
plt.grid(True)

plt.show()
`````` 