
Estoy usando tikz
para recrear la siguiente imagen.
Lo que intento hacer es dibujar una forma trapezoidal "extendida" y "suave". mi codigo es
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
%axes
\draw[very thick] (0,0)--(8,0);
\draw[very thick] (0,0)--(0,5) coordinate (y);
\draw (8,0) node[below] {\eng{Energy}};
\node [draw=none,rotate=90, yshift=0.3cm] at (0,5) {\eng{Counts}};
%1st peak
\draw[thick,blue] (7.3,0)--(7,3)--(5,4)--(4.7,0);
\draw[blue,dashed] (7,0)--(7,3);
\draw[blue,dashed] (5,4)--(5,0);
\draw[blue] (7,3) node[above,right] {$4$};
\draw[blue] (5,4) node[above,left] {$3$};
\draw[blue] (6,4.5) node[above] {$\delta E$};
%2nd peak
\draw[thick,red] (3.3,0) -- (3,2.5) -- (1,3.5) -- (0.7,0);
\draw[red,dashed] (3,0)--(3,2.5);
\draw[red,dashed] (1,0)--(1,3.5);
\draw[red] (3,2.5) node[above,right] {$1$};
\draw[red] (1,3.5) node[above,left] {$2$};
\draw[red] (2,4.5) node[above] {$\delta E$};
\end{tikzpicture}
\end{document}
y mi salida es
Lo que me gustaría hacer es suavizar los ángulos 1,2,3,4. También me gustaría hacer un poco más suaves, como tener una cola pequeña, las líneas rojas y azules que tocan el eje x. ¿Cómo se pueden lograr?
Respuesta1
No estoy muy seguro de lo que quieres decir con "extender las dos líneas perpendiculares al eje x", pero al menos se puede dibujar una línea suave con curvas de Bézier.
En una línea recta como (a) -- (b)
usted puede agregar (múltiples) puntos de control x para crear una curva suave con(a) .. controls (x) .. (b)
(Tomado deaquí)
EDITAR: Gracias por editar tu pregunta :) déjame revisar mi respuesta...
En realidad, existe un modificador "suave" para trazar. Además, agregué otra coordenada al final y al principio y aumenté el valor y de las coordenadas vecinas:
\draw[thick, green] plot [smooth] coordinates {(3.5,0) (3.3,0.5) (3,2.5) (1,3.5) (0.7,0.5) (0.5,0)};
A modo de comparación, la respuesta de Harish Kumar (ambos superpuestos en verde), también con dos nodos adicionales para lograr el suavizado a lo largo del eje x.
\draw[thick,green, rounded corners=4mm ] (7.7,0) -- (7.3,0)--(7,3)--(5,4)--(4.7,0) -- (4.3,0);
Respuesta2
Puedes usar rounded corners
:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
%axes
\draw[very thick] (0,0)--(8,0);
\draw[very thick] (0,0)--(0,5) coordinate (y);
\draw (8,0) node[below] {Energy};
\node [draw=none,rotate=90, yshift=0.3cm] at (0,5) {Counts};
%1st peak
\draw[thick,blue,rounded corners=4mm] (7.3,0)--(7,3)--(5,4)--(4.7,0);
\draw[blue,dashed] (7,0)-- node[pos=1.1,above,right] {$4$}(7,2.6);
\draw[blue,dashed] (5.1,0)-- node[pos=1.1,above,left] {$3$}(5.1,3.7);
\draw[blue] (6,4.5) node[above] {$δE$};
%2nd peak
\draw[thick,red,rounded corners=4mm] (3.3,0) -- (3,2.5) -- (1,3.5) -- (0.7,0);
\draw[red,dashed] (2.9,0)-- node[pos=1.1,above,right] {$1$}(2.9,2.3);
\draw[red,dashed] (1.1,0)-- node[pos=1.1,above,left] {$2$}(1.1,3.25);
\draw[red] (2,4.5) node[above] {$δE$};
\end{tikzpicture}
\end{document}
También hice algunas simplificaciones en el código para los nodos 1, 2, 3 y 4.