Caminho suave Tikz-Draw para formar um pico de espectro

Caminho suave Tikz-Draw para formar um pico de espectro

Estou usando tikzpara recriar a seguinte imagem

insira a descrição da imagem aqui

O que estou tentando fazer é desenhar uma forma trapezoidal "estendida" e "suave". Meu código é

\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}

e minha saída é

insira a descrição da imagem aqui

O que eu gostaria de fazer é tornar os ângulos 1,2,3,4 mais suaves. Também gostaria de deixar um pouco mais suave, como ter uma pequena cauda - as linhas vermelhas e azuis que tocam o eixo x. Como isso pode ser alcançado?

Responder1

Não tenho certeza do que você quer dizer com "estender as duas linhas perpendiculares às linhas do eixo x", mas pelo menos desenhar uma linha suave pode ser conseguido com curvas de Bézier.

Em uma linha reta como (a) -- (b)você pode adicionar (múltiplos) pontos de controle x para criar uma curva suave com(a) .. controls (x) .. (b)

(Tirado deaqui)

EDITAR: Obrigado por editar sua pergunta :) deixe-me revisar minha resposta ...

Na verdade, existe um modificador "suave" para plotagem. Além disso, adicionei outra coordenada no final e no início e aumentei o valor y das coordenadas vizinhas:

\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)};

Para comparação, a resposta de Harish Kumar (ambas sobrepostas em verde), também com dois nós adicionais para obter suavização ao longo do eixo x.

\draw[thick,green, rounded corners=4mm ] (7.7,0) -- (7.3,0)--(7,3)--(5,4)--(4.7,0) -- (4.3,0);

insira a descrição da imagem aqui

Responder2

Você pode 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}

insira a descrição da imagem aqui

Também fiz algumas simplificações no código para os nós 1, 2, 3 e 4.

informação relacionada