Created
January 16, 2023 14:09
-
-
Save muhammadanas0716/d4460750dbaf9de9ad6c82e078a4e21a to your computer and use it in GitHub Desktop.
Marginal histograms have a histogram along the X and Y axis variables. This is used to visualize the relationship between the X and Y along with the univariate distribution of the X and the Y individually.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Import Libararies | |
import numpy as np | |
import pandas as pd | |
import matplotlib as mpl | |
import matplotlib.pyplot as plt | |
import seaborn as sns | |
# Import Data | |
df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv") | |
# Create Fig and gridspec | |
fig = plt.figure(figsize=(16, 10), dpi= 80) | |
grid = plt.GridSpec(4, 4, hspace=0.5, wspace=0.2) | |
# Define the axes | |
ax_main = fig.add_subplot(grid[:-1, :-1]) | |
ax_right = fig.add_subplot(grid[:-1, -1], xticklabels=[], yticklabels=[]) | |
ax_bottom = fig.add_subplot(grid[-1, 0:-1], xticklabels=[], yticklabels=[]) | |
# Scatterplot on main ax | |
ax_main.scatter('displ', 'hwy', s=df.cty*4, c=df.manufacturer.astype('category').cat.codes, alpha=.9, data=df, cmap="tab10", edgecolors='gray', linewidths=.5) | |
# histogram on the right | |
ax_bottom.hist(df.displ, 40, histtype='stepfilled', orientation='vertical', color='deeppink') | |
ax_bottom.invert_yaxis() | |
# histogram in the bottom | |
ax_right.hist(df.hwy, 40, histtype='stepfilled', orientation='horizontal', color='deeppink') | |
# Decorations | |
ax_main.set(title='Scatterplot with Histograms \n displ vs hwy', xlabel='displ', ylabel='hwy') | |
ax_main.title.set_fontsize(20) | |
for item in ([ax_main.xaxis.label, ax_main.yaxis.label] + ax_main.get_xticklabels() + ax_main.get_yticklabels()): | |
item.set_fontsize(14) | |
xlabels = ax_main.get_xticks().tolist() | |
ax_main.set_xticklabels(xlabels) | |
plt.show() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment