The problem – Seaborn distplot
is deprecated
Staring with version 0.11.0 of the Python Seaborn data visualization library, distplot
is a deprecated function, and will be removed in a future version.
You can see the warning if you run the code below.
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_style("darkgrid")
# Load the default dataset that comes with Seaborn
tips_data = sns.load_dataset("tips")
# Inspect the first 5 rows of the data
tips_data.head()
total_bill | tip | sex | smoker | day | time | size | |
---|---|---|---|---|---|---|---|
0 | 16.99 | 1.01 | Female | No | Sun | Dinner | 2 |
1 | 10.34 | 1.66 | Male | No | Sun | Dinner | 3 |
2 | 21.01 | 3.50 | Male | No | Sun | Dinner | 3 |
3 | 23.68 | 3.31 | Male | No | Sun | Dinner | 2 |
4 | 24.59 | 3.61 | Female | No | Sun | Dinner | 4 |
Create a Histogram Using Seaborn
# Plot a histogram for the total bill
sns.distplot(tips_data["total_bill"], kde = False).set_title("Histogram for Total Bill")
plt.show()
You can see the warning below:
c:\program files\python39\lib\site-packages\seaborn\distributions.py:2557: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).
warnings.warn(msg, FutureWarning)
The Solution – Use Seaborn displot
Use sns.displot()
instead. Notice that the set_title()
method doesn’t exist so we use plt.title()
instead.
# Plot a histogram for the total bill
sns.displot(tips_data["total_bill"], kde = False)
plt.title("Histogram for Total Bill")
plt.show()
Now your basic Python Seaborn histograms are future-ready. You may also want to use sns.histplot()
, an axes-level function for plotting histograms (sns.displot()
is figure-level). Checkout what’s new in the latest version of Seaborn here.
thank you.