import numpy as np
import matplotlib.pyplot as plt

<h1>Fixing random state for reproducibility</h1>

np.random.seed(19680801)

<h1>some random data</h1>

x = np.random.randn(1000)
y = np.random.randn(1000)

def scatter_hist(x, y, ax, ax_histx, ax_histy):
    # no labels
    ax_histx.tick_params(axis=&quot;x&quot;, labelbottom=False)
    ax_histy.tick_params(axis=&quot;y&quot;, labelleft=False)
    # the scatter plot:
    ax. Scatter(x, y,s=3)
    # now determine nice limits by hand:
    binwidth = 0.25
    xymax = max(np.max(np.abs(x)), np.max(np.abs(y)))
    lim = (int(xymax/binwidth) + 1) * binwidth
    bins = np.arange(-lim, lim + binwidth, binwidth)
    ax_histx.hist(x, bins=bins)
    ax_histy.hist(y, bins=bins, orientation=&#039;horizontal&#039;)

<h1>definitions for the axes</h1>

left, width = 0.1, 0.65
bottom, height = 0.1, 0.65
spacing = 0.005
rect_scatter = [left, bottom, width, height]
rect_histx = [left, bottom + height + spacing, width, 0.2]
rect_histy = [left + width + spacing, bottom, 0.2, height]

<h1>start with a square Figure</h1>

fig = plt.figure(figsize=(8, 8))
ax = fig.add_axes(rect_scatter)
ax_histx = fig.add_axes(rect_histx, sharex=ax)
ax_histy = fig.add_axes(rect_histy, sharey=ax)

<h1>use the previously defined function</h1>

scatter_hist(x, y, ax, ax_histx, ax_histy)
plt.savefig(&#039;ex208.png&#039;, dpi=72)
plt.show()

Discover more from Tips and Hints for Aerospace Engineers

Subscribe now to keep reading and get access to the full archive.

Continue reading