Scatter Plot with Marginal Histograms in Python with Seaborn Last Updated : 23 Jul, 2025 Comments Improve Suggest changes 5 Likes Like Report Prerequisites: Seaborn Scatter Plot with Marginal Histograms is basically a joint distribution plot with the marginal distributions of the two variables. In data visualization, we often plot the joint behavior of two random variables (bi-variate distribution) or any number of random variables. But if data is too large, overlapping can be an issue. Hence, to distinguish between variables it is useful to have the probability distribution of each variable on the side along with the joint plot. This individual probability distribution of a random variable is referred to as its marginal probability distribution. In seaborn, this is facilitated with jointplot(). It represents the bi-variate distribution using scatterplot() and the marginal distributions using histplot(). ApproachImport seaborn libraryLoad dataset of your choiceUse jointplot() on variables of your dataset Example 1: Python3 # importing and creating alias for seaborn import seaborn as sns # loading tips dataset tips = sns.load_dataset("tips") # plotting scatterplot with histograms for features total bill and tip. sns.jointplot(data=tips, x="total_bill", y="tip") Output : <seaborn.axisgrid.JointGrid at 0x26203152688> jointplot_with_histograms Example 2: Using kind=”reg” attribute you can add a linear regression fit and univariate KDE curves. Python3 import seaborn as sns tips = sns.load_dataset("tips") # here "*" is used as a marker for scatterplot sns.jointplot(data=tips, x="total_bill", y="tip", kind="reg", marker="*") Output : scatterplot with a linear regression fit Example3: To add conditional colors to the scatterplot you can use hue attribute but it draws separate density curves (using kdeplot()) on the marginal axes. Python3 import seaborn as sns tips = sns.load_dataset("tips") sns.jointplot(data=tips, x="total_bill", y="tip", hue="time") Output : scatterplot3 Comment T tejalkadam18m Follow 5 Improve T tejalkadam18m Follow 5 Improve Article Tags : Python Python-Seaborn Explore Python FundamentalsPython Introduction 2 min read Input and Output in Python 4 min read Python Variables 5 min read Python Operators 4 min read Python Keywords 2 min read Python Data Types 8 min read Conditional Statements in Python 3 min read Loops in Python - For, While and Nested Loops 5 min read Python Functions 5 min read Recursion in Python 4 min read Python Lambda Functions 5 min read Python Data StructuresPython String 5 min read Python Lists 4 min read Python Tuples 4 min read Python Dictionary 3 min read Python Sets 6 min read Python Arrays 7 min read List Comprehension in Python 4 min read Advanced PythonPython OOP Concepts 11 min read Python Exception Handling 5 min read File Handling in Python 4 min read Python Database Tutorial 4 min read Python MongoDB Tutorial 2 min read Python MySQL 9 min read Python Packages 10 min read Python Modules 7 min read Python DSA Libraries 15 min read List of Python GUI Library and Packages 3 min read Data Science with PythonNumPy Tutorial - Python Library 3 min read Pandas Tutorial 4 min read Matplotlib Tutorial 5 min read Python Seaborn Tutorial 15+ min read StatsModel Library- Tutorial 4 min read Learning Model Building in Scikit-learn 8 min read TensorFlow Tutorial 2 min read PyTorch Tutorial 6 min read Web Development with PythonFlask Tutorial 8 min read Django Tutorial | Learn Django Framework 7 min read Django ORM - Inserting, Updating & Deleting Data 4 min read Templating With Jinja2 in Flask 6 min read Django Templates 7 min read Python | Build a REST API using Flask 3 min read How to Create a basic API using Django Rest Framework ? 4 min read Python PracticePython Quiz 1 min read Python Coding Practice 1 min read Python Interview Questions and Answers 15+ min read Like