# How to Plot Multiple Lines in Matplotlib

You can display  multiple lines in a single Matplotlib plot by using the following syntax:

```import matplotlib.pyplot as plt

plt.plot(df['column1'])
plt.plot(df['column2'])
plt.plot(df['column3'])

...
plt.show()
```

This tutorial provides several examples of how to plot multiple lines in one chart using the following pandas DataFrame:

```import numpy as np
import pandas as pd

#make this example reproducible
np.random.seed(0)

#create dataset
period = np.arange(1, 101, 1)
leads = np.random.uniform(1, 50, 100)
prospects = np.random.uniform(40, 80, 100)
sales = 60 + 2*period + np.random.normal(loc=0, scale=.5*period, size=100)
df = pd.DataFrame({'period': period,
'leads': leads,
'prospects': prospects,
'sales': sales})

#view first 10 rows
df.head(10)

period	    leads	prospects	    sales
0	1	27.891862	67.112661	62.563318
1	2	36.044279	50.800319	62.920068
2	3	30.535405	69.407761	64.278797
3	4	27.699276	78.487542	67.124360
4	5	21.759085	49.950126	68.754919
5	6	32.648812	63.046293	77.788596
6	7	22.441773	63.681677	77.322973
7	8	44.696877	62.890076	76.350205
8	9	48.219475	48.923265	72.485540
9	10	19.788634	78.109960	84.221815
```

### Plot Multiple Lines in Matplotlib

The following code shows how to plot three individual lines in a single plot in matplotlib:

```import matplotlib.pyplot as plt

#plot individual lines
plt.plot(df['leads'])
plt.plot(df['prospects'])
plt.plot(df['sales'])

#display plot
plt.show()
```

### Customize Lines in Matplotlib

You can also customize the color, style, and width of each line:

```#plot individual lines with custom colors, styles, and widths
plt.plot(df['leads'], color='green')
plt.plot(df['prospects'], color='steelblue', linewidth=4)
plt.plot(df['sales'], color='purple', linestyle='dashed')

#display plot
plt.show()```

### Add a Legend in Matplotlib

You can also add a legend so you can tell the lines apart:

```#plot individual lines with custom colors, styles, and widths
plt.plot(df['leads'], label='Leads', color='green')
plt.plot(df['prospects'], label='Prospects', color='steelblue', linewidth=4)
plt.plot(df['sales'], label='Sales', color='purple', linestyle='dashed')

#add legend
plt.legend()

#display plot
plt.show()```

### Add Axis Labels and Titles in Matplotlib

Lastly, you can add axis labels and a title to make the plot complete:

```#plot individual lines with custom colors, styles, and widths
plt.plot(df['leads'], label='Leads', color='green')
plt.plot(df['prospects'], label='Prospects', color='steelblue', linewidth=4)
plt.plot(df['sales'], label='Sales', color='purple', linestyle='dashed')

#add legend
plt.legend()

#add axis labels and a title
plt.ylabel('Sales', fontsize=14)
plt.xlabel('Period', fontsize=14)
plt.title('Company Metrics', fontsize=16)

#display plot
plt.show()```

You can find more Matplotlib tutorials here.

May 13, 2024
April 25, 2024
April 19, 2024
April 18, 2024

## One Reply to “How to Plot Multiple Lines in Matplotlib”

1. Eoin says:

Hello, thanks for posting this. It’s really helpful

I have one question. How would I plot the x axis as a date variable while keeping the multiple lines in the plot on the y axis?

For example along with ‘leads’, ‘prospects’ and ‘sales’ there was a ‘date’ variable, how would you plot the date as the x axis while also plotting the other 3 variables on the same plot?

plt.plot(df[‘date’], [‘leads’])
plt.plot(df[‘prospects’])
plt.plot(df[‘sales’])

I know this doesn’t work but would it be along these lines?

Thanks