¿Recortar correctamente en Tikz?

¿Recortar correctamente en Tikz?

Con la increíble ayuda de esta comunidad, hice el siguiente dibujo hace algunos meses. En aquel entonces, estaba muy contento con eso; pero a medida que pasa el tiempo, quiero que mis figuras luzcan cada vez mejor. Como puedes ver en la imagen, algunas líneas exceden el margen de los ejes; y por supuesto quiero evitar eso. He visto en esta comunidad que la respuesta es usar la \clipopción de TikZ. He comprobado elDocumentación TIkZy llevo un tiempo jugando con esa opción, pero sin ningún éxito. ¿Alguien sabe cómo forzar que esas líneas se queden dentro de los ejes definidos por la trama? La imagen está a continuación:

El MWE que genera dicha imagen es el siguiente:

\documentclass[]{standalone}
% PACKAGES LOADING
\usepackage[dvipsnames]{xcolor} % To get many colours.
\usepackage{amsmath, mathtools, amsthm, mathrsfs, amssymb} % MATH Packages
\usepackage{tikz} % To plot almost everything.
% TIKZ SETTING
\usetikzlibrary{fit, calc, matrix, positioning, arrows.meta, intersections, through, backgrounds, patterns}

\begin{document}
\begin{tikzpicture}[my plot/.style={thick, smooth, samples=100, domain=0:1}, my grid/.style={densely dotted,opacity=0.5, every node/.style={black,opacity=1},}, my axis/.style={latex-latex}, scale=1.5]
\draw[thick, smooth,color=Red,] (0,1) -- (1,1);
\draw[thick, smooth,color=Green,] (0,1.5) -- (1,1.5);
\draw[my plot, color=Blue] (0,0) plot (\x,{(3*\x)});
\coordinate (start plot) at (0,{(0)});
\coordinate (end plot) at (1.5,{(4)});
\draw[my plot, color=Orange, shift={(0,3)},] (0,0) plot (\x,{(-3*\x)});
\draw[my axis] ([shift={(-0cm,0cm)}]start plot |- end plot) node[above] {$H_1$} |- node[coordinate](origin){} ([shift={(0cm,-0cm)}]start plot -| end plot) node[right] {$q$};
\def\x{0.5}\def\y{4}\def\p{0.55}
\coordinate (a) at (0.0,{(0.0)});
\coordinate (b) at (1,{(3)});
\coordinate (c) at (0,{(1)});
\coordinate (d) at (0,{(1.5)});
\coordinate (e) at (1,{(1)});
\coordinate (f) at (1,{(1.5)});
\coordinate (g) at (1,{(0.25)});
\coordinate (h) at (1,{(2.75)});
\draw[my grid] (a) |- node[below,font=\scriptsize]{$0$} (origin) |- node[left,font=\scriptsize]{$0$} cycle;
\draw[my grid] (b) |- node[below,font=\scriptsize]{$1$} (origin) |- node[left,font=\scriptsize]{$3$} cycle;
\draw[my grid] (c) |- node[left,font=\scriptsize]{$1$} cycle;
\draw[my grid] (d) |- node[left,font=\scriptsize]{$1.5$} cycle;
\draw[my grid] (e) |- node[right,font=\scriptsize]{$\textcolor{Red}{H_1(B,q)=1}$} cycle;
\draw[my grid] (f) |- node[right,font=\scriptsize]{$\textcolor{Green}{H_1(\sigma_1,q)=1.5}$} cycle;
\draw[my grid] (g) |- node[right,font=\scriptsize]{$\textcolor{Orange}{H_1(M,q)=3(1-q)}$} cycle;
\draw[my grid] (h) |- node[right,font=\scriptsize]{$H_1(T,q)=3q$} cycle;
\clip(0,0) rectangle (1.5,4);
\end{tikzpicture}
\end{document}

Y la imagen es:

ingrese la descripción de la imagen aquí

Entonces mi pregunta es:¿Cómo fuerzo que las líneas permanezcan dentro de la trama?

PRIMA: ¿Alguien sabe qué está generando las anomalías de la cuadrícula vertical (línea de puntos gris)?

PD: Soy consciente de que el código de la figura probablemente pueda mejorarse; Solo usé otras figuras que tenía para crear esta porque soy nueva en TikZ. Además, puede parecer un duplicado, pero no creo que sea porque no encontré ninguna manera de utilizar correctamente la \clipopción para obtener lo que deseo.

EDITAR: Ya que tengo varias o muchas figuras con el mismo problema; Realmente agradecería soluciones generales; aunque, por supuesto, cualquier ayuda será muy apreciada.

¡Muchas gracias a todos por su tiempo!

Respuesta1

Tienes que hacerlo clipantes de dibujar y definir el recorte dentro de un alcance a menos que quieras aplicarlo al resto de la figura. En este caso, mueva sus funciones dentro de un alcance como:

\begin{scope}
\clip (0,0) rectangle (1,3);
\draw[my plot, color=Orange, shift={(0,3)},] (0,0) plot (\x,{(-3*\x)});
\draw[my plot, color=Blue] (0,0) plot (\x,{(3*\x)});
\end{scope}

ingrese la descripción de la imagen aquí

información relacionada