Create line plots in Python Seaborn – a full example.

As part of your data wrangling and visualization process you might need to use line plots. In today’s tutorial we’ll see how you can use the Pandas and Seaborn libraries in Python to creating good looking plots that you can share with others.

Lineplot in Seaborn

We’ll first setup or Python data visualization environment by importing Pandas, Matplotlib and Seaborn into our working environment.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
sns.set_style("whitegrid")

Then read our testing data into a Pandas DataFrame.

deliveries = pd.read_csv("../data/deliveries.csv")

Then look into the data:

deliveries.head(3)
typetimedayorder_amountdel_tip
0FoodAfternoonTUE324
1FoodNightWED466
2MedicinesMorningTUE410

Now let’s draw a simple sns.lineplot to analyze the delivery tips vs the order amount. Here we go:

#Seaborn lineplot
line,ax = plt.subplots() 
ax = sns.lineplot(x="order_amount", y="del_tip", data=deliveries);

Seaborn lineplot title with set_title()

Let’s now go ahead and add a title to the chart and label the x and y axes accordingly.

ax.set_title("Delivery Tip vs Order Amount", fontsize=15)
ax.set_xlabel ("Order Amount")
ax.set_ylabel ("Tip Total")

Seaborn Lineplot legend

We’ll go ahead and set the location to the upper right. We can as well position the legend outside the plot.

ax.legend (loc="upper right");

Lineplot size in Seaborn

The figure we got is a bit small, so we would like to resize it appropriately using the figsize parameter.

# figsize defines the line width and height of the lineplot
line,ax = plt.subplots(figsize=(10,6))

Set the line style in Seaborn

Seaborn allows to modify the plot line styles according to a grouping variables – in our case we chosen the day variable.

ax = sns.lineplot(x="order_amount", y="del_tip", data=deliveries, palette="pastel", style='day')

Lineplot chart with colors

Let’s make our plot a bit more colorful by applying the pastel palette available in Seaborn. The style changed the line color and the chart background.



line,ax = plt.subplots(figsize=(10,6))
ax = sns.lineplot(x="order_amount", y="del_tip", data=deliveries,palette="pastel", hue="time")
ax.set_title("Delivery Tip vs Order Amount", fontsize=15)
ax.set_xlabel ("Order Amount")
ax.set_ylabel ("Tip Total")
ax.legend (loc="upper right");
line.savefig("simplelineplotChart.png");

Change the line width

You can also map the width of your plot lines according to a grouping variable.

ax = sns.lineplot(x="order_amount", y="del_tip", data=deliveries, palette="pastel", size='day')

Change the marker size

You can modify the plot marker properties using the matplotlib.markers module. In this example we also modified the marker overall height and width.

ax = sns.lineplot(x="order_amount", y="del_tip", data=deliveries,   marker= 'v', markersize=14)

Remove the chart legend

Last, we would like to remove the legend from the chart. You can do it by removing the hue parameter from the sns.lineplot definition; or alternatively, you can still maintain the categorical color encoding, and just suppress the legend with the legend=False parameter.

ax = sns.lineplot(x="order_amount", y="del_tip", data=deliveries,palette="pastel", hue="time", legend=False)

Leave a Comment