Gait Plots
Gait Plots#
[1]:
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
[2]:
mpl.rcParams["text.usetex"] = True
mpl.rcParams["text.latex.preamble"] = r"\usepackage{amsmath}"
plt.rcParams["font.size"] = 18
[3]:
fig, axs = plt.subplots(1, 3, figsize=(15, 2.5))
stance_color = "black"
swing_color = "white"
edge_color = "black"
# Walking Gait
axs[0].broken_barh(
[(0, 10), (10, 10), (20, 10)],
(13, 4),
facecolors=stance_color,
edgecolor=edge_color,
)
axs[0].broken_barh([(30, 10)], (13, 4), facecolors=swing_color, edgecolor=edge_color)
axs[0].broken_barh(
[(0, 10), (20, 10), (30, 10)], (8, 4), facecolors=stance_color, edgecolor=edge_color
)
axs[0].broken_barh([(10, 10)], (8, 4), facecolors=swing_color, edgecolor=edge_color)
axs[0].broken_barh(
[(10, 10), (20, 10), (30, 10)],
(3, 4),
facecolors=stance_color,
edgecolor=edge_color,
)
axs[0].broken_barh([(0, 10)], (3, 4), facecolors=swing_color, edgecolor=edge_color)
axs[0].broken_barh(
[(0, 10), (10, 10), (30, 10)],
(-2, 4),
facecolors=stance_color,
edgecolor=edge_color,
)
axs[0].broken_barh([(20, 10)], (-2, 4), facecolors=swing_color, edgecolor=edge_color)
axs[0].set_xticks([0, 40])
axs[0].set_xticklabels(
[
r"$\textbf{Start}$" + "\n" + r"$\textbf{Cycle}$",
r"$\textbf{End}$" + "\n" + r"$\textbf{Cycle}$",
]
)
axs[0].set_yticks([0, 5, 10, 15])
axs[0].set_yticklabels(
[r"$\textbf{HR}$", r"$\textbf{HL}$", r"$\textbf{FR}$", r"$\textbf{FL}$"]
)
axs[0].tick_params(left=False, bottom=False)
axs[0].spines["top"].set_visible(False)
axs[0].spines["bottom"].set_visible(False)
axs[0].spines["left"].set_visible(False)
axs[0].spines["right"].set_visible(False)
axs[0].set_title(r"$\textbf{Walk Gait}$", fontsize=16)
axs[0].set_aspect("equal")
# Trotting Gait
axs[1].broken_barh(
[(0, 20)],
(13, 4),
facecolors=stance_color,
edgecolor=edge_color,
label=r"$\textbf{Stance Phase}$",
)
axs[1].broken_barh(
[(20, 20)],
(13, 4),
facecolors=swing_color,
edgecolor=edge_color,
label=r"$\textbf{Swing Phase}$",
)
axs[1].broken_barh([(20, 20)], (8, 4), facecolors=stance_color, edgecolor=edge_color)
axs[1].broken_barh([(0, 20)], (8, 4), facecolors=swing_color, edgecolor=edge_color)
axs[1].broken_barh([(20, 20)], (3, 4), facecolors=stance_color, edgecolor=edge_color)
axs[1].broken_barh([(0, 20)], (3, 4), facecolors=swing_color, edgecolor=edge_color)
axs[1].broken_barh([(0, 20)], (-2, 4), facecolors=stance_color, edgecolor=edge_color)
axs[1].broken_barh([(20, 20)], (-2, 4), facecolors=swing_color, edgecolor=edge_color)
axs[1].set_xticks([0, 40])
axs[1].set_xticklabels(
[
r"$\textbf{Start}$" + "\n" + r"$\textbf{Cycle}$",
r"$\textbf{End}$" + "\n" + r"$\textbf{Cycle}$",
]
)
axs[1].set_yticks([0, 5, 10, 15])
axs[1].set_yticklabels(
[r"$\textbf{HR}$", r"$\textbf{HL}$", r"$\textbf{FR}$", r"$\textbf{FL}$"]
)
axs[1].tick_params(left=False, bottom=False)
axs[1].spines["top"].set_visible(False)
axs[1].spines["bottom"].set_visible(False)
axs[1].spines["left"].set_visible(False)
axs[1].spines["right"].set_visible(False)
axs[1].set_title(r"$\textbf{Trot Gait}$", fontsize=16)
axs[1].set_aspect("equal")
handles, labels = axs[1].get_legend_handles_labels()
fig.legend(
handles,
labels,
loc="lower center",
bbox_to_anchor=(0.5, -0.35),
frameon=False,
ncol=2,
)
# Gallop Gait
axs[2].broken_barh([(30, 10)], (13, 4), facecolors=stance_color, edgecolor=edge_color)
axs[2].broken_barh([(0, 30)], (13, 4), facecolors=swing_color, edgecolor=edge_color)
axs[2].broken_barh([(10, 10)], (8, 4), facecolors=stance_color, edgecolor=edge_color)
axs[2].broken_barh(
[(0, 10), (20, 20)], (8, 4), facecolors=swing_color, edgecolor=edge_color
)
axs[2].broken_barh([(0, 10)], (3, 4), facecolors=stance_color, edgecolor=edge_color)
axs[2].broken_barh([(10, 30)], (3, 4), facecolors=swing_color, edgecolor=edge_color)
axs[2].broken_barh([(20, 10)], (-2, 4), facecolors=stance_color, edgecolor=edge_color)
axs[2].broken_barh(
[(0, 20), (30, 10)], (-2, 4), facecolors=swing_color, edgecolor=edge_color
)
axs[2].set_xticks([0, 40])
axs[2].set_xticklabels(
[
r"$\textbf{Start}$" + "\n" + r"$\textbf{Cycle}$",
r"$\textbf{End}$" + "\n" + r"$\textbf{Cycle}$",
]
)
axs[2].set_yticks([0, 5, 10, 15])
axs[2].set_yticklabels(
[r"$\textbf{HR}$", r"$\textbf{HL}$", r"$\textbf{FR}$", r"$\textbf{FL}$"]
)
axs[2].tick_params(left=False, bottom=False)
axs[2].spines["top"].set_visible(False)
axs[2].spines["bottom"].set_visible(False)
axs[2].spines["left"].set_visible(False)
axs[2].spines["right"].set_visible(False)
axs[2].set_title(r"$\textbf{Gallop Gait}$", fontsize=16)
axs[2].set_aspect("equal")
plt.savefig(
"../images/GaitPhasePlots.png", dpi=200, transparent=False, bbox_inches="tight"
)
[4]:
fig, axs = plt.subplots(1, 3, figsize=(20, 3))
stance_color = "black"
swing_color = "white"
edge_color = "black"
# Walking Gait
axs[0].broken_barh([(0, 30)], (13, 4), facecolors=stance_color, edgecolor=edge_color)
axs[0].broken_barh([(30, 10)], (13, 4), facecolors=swing_color, edgecolor=edge_color)
axs[0].broken_barh([(-20, 30)], (8, 4), facecolors=stance_color, edgecolor=edge_color)
axs[0].broken_barh([(10, 10)], (8, 4), facecolors=swing_color, edgecolor=edge_color)
axs[0].broken_barh([(-30, 30)], (3, 4), facecolors=stance_color, edgecolor=edge_color)
axs[0].broken_barh([(0, 10)], (3, 4), facecolors=swing_color, edgecolor=edge_color)
axs[0].broken_barh([(-10, 30)], (-2, 4), facecolors=stance_color, edgecolor=edge_color)
axs[0].broken_barh([(20, 10)], (-2, 4), facecolors=swing_color, edgecolor=edge_color)
axs[0].set_xticks([0])
axs[0].set_xticklabels([r"$\textbf{Start}$" + "\n" + r"$\textbf{Cycle}$"])
axs[0].set_yticks([0, 5, 10, 15])
axs[0].set_yticklabels(
[r"$\textbf{HR}$", r"$\textbf{HL}$", r"$\textbf{FR}$", r"$\textbf{FL}$"]
)
axs[0].tick_params(left=False, bottom=False)
axs[0].spines["top"].set_visible(False)
axs[0].spines["bottom"].set_visible(False)
axs[0].spines["left"].set_visible(False)
axs[0].spines["right"].set_visible(False)
axs[0].set_title(r"$\textbf{Walk Gait}$", fontsize=16)
axs[0].set_aspect("equal")
# Trotting Gait
axs[1].broken_barh(
[(0, 20)],
(13, 4),
facecolors=stance_color,
edgecolor=edge_color,
label=r"$\textbf{Stance Phase}$",
)
axs[1].broken_barh(
[(20, 20)],
(13, 4),
facecolors=swing_color,
edgecolor=edge_color,
label=r"$\textbf{Swing Phase}$",
)
axs[1].broken_barh([(-20, 20)], (8, 4), facecolors=stance_color, edgecolor=edge_color)
axs[1].broken_barh([(0, 20)], (8, 4), facecolors=swing_color, edgecolor=edge_color)
axs[1].broken_barh([(-20, 20)], (3, 4), facecolors=stance_color, edgecolor=edge_color)
axs[1].broken_barh([(0, 20)], (3, 4), facecolors=swing_color, edgecolor=edge_color)
axs[1].broken_barh([(0, 20)], (-2, 4), facecolors=stance_color, edgecolor=edge_color)
axs[1].broken_barh([(20, 20)], (-2, 4), facecolors=swing_color, edgecolor=edge_color)
axs[1].set_xticks([0])
axs[1].set_xticklabels([r"$\textbf{Start}$" + "\n" + r"$\textbf{Cycle}$"])
axs[1].set_yticks([0, 5, 10, 15])
axs[1].set_yticklabels(
[r"$\textbf{HR}$", r"$\textbf{HL}$", r"$\textbf{FR}$", r"$\textbf{FL}$"]
)
axs[1].tick_params(left=False, bottom=False)
axs[1].spines["top"].set_visible(False)
axs[1].spines["bottom"].set_visible(False)
axs[1].spines["left"].set_visible(False)
axs[1].spines["right"].set_visible(False)
axs[1].set_title(r"$\textbf{Trot Gait}$", fontsize=16)
axs[1].set_aspect("equal")
handles, labels = axs[1].get_legend_handles_labels()
fig.legend(
handles,
labels,
loc="lower center",
bbox_to_anchor=(0.5, -0.1),
frameon=False,
ncol=2,
)
# Gallop Gait
axs[2].broken_barh([(-10, 10)], (13, 4), facecolors=stance_color, edgecolor=edge_color)
axs[2].broken_barh([(0, 30)], (13, 4), facecolors=swing_color, edgecolor=edge_color)
axs[2].broken_barh([(-30, 10)], (8, 4), facecolors=stance_color, edgecolor=edge_color)
axs[2].broken_barh([(-20, 30)], (8, 4), facecolors=swing_color, edgecolor=edge_color)
axs[2].broken_barh([(0, 10)], (3, 4), facecolors=stance_color, edgecolor=edge_color)
axs[2].broken_barh([(10, 30)], (3, 4), facecolors=swing_color, edgecolor=edge_color)
axs[2].broken_barh([(-20, 10)], (-2, 4), facecolors=stance_color, edgecolor=edge_color)
axs[2].broken_barh([(-10, 30)], (-2, 4), facecolors=swing_color, edgecolor=edge_color)
axs[2].set_xticks([0])
axs[2].set_xticklabels([r"$\textbf{Start}$" + "\n" + r"$\textbf{Cycle}$"])
axs[2].set_yticks([0, 5, 10, 15])
axs[2].set_yticklabels(
[r"$\textbf{HR}$", r"$\textbf{HL}$", r"$\textbf{FR}$", r"$\textbf{FL}$"]
)
axs[2].tick_params(left=False, bottom=False)
axs[2].spines["top"].set_visible(False)
axs[2].spines["bottom"].set_visible(False)
axs[2].spines["left"].set_visible(False)
axs[2].spines["right"].set_visible(False)
axs[2].set_title(r"$\textbf{Gallop Gait}$", fontsize=16)
axs[2].set_aspect("equal")
plt.savefig(
"../images/GaitPhaseOffsetPlots.png",
dpi=200,
transparent=False,
bbox_inches="tight",
)
[ ]: