Tikz-Нарисуйте плавный путь для формирования пика спектра

Tikz-Нарисуйте плавный путь для формирования пика спектра

Я использую tikzдля воссоздания следующего изображения

введите описание изображения здесь

Я пытаюсь нарисовать "расширенную" и "гладкую" трапециевидную форму. Мой код такой:

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

и мой вывод -

введите описание изображения здесь

Я хотел бы сделать углы 1,2,3,4 более плавными. Также я хотел бы сделать немного более плавными — как будто с небольшим хвостиком — красные и синие линии, которые касаются оси x. Как этого можно добиться?

решение1

Я не совсем понимаю, что вы имеете в виду, говоря «продолжить две перпендикулярные линии к оси x», но, по крайней мере, нарисовать плавную линию можно с помощью кривых Безье.

На прямой линии, например, (a) -- (b)можно добавить (несколько) контрольных точек x, чтобы создать плавную кривую с(a) .. controls (x) .. (b)

(Взято изздесь)

EDIT: Спасибо за редактирование вашего вопроса :) позвольте мне тогда отредактировать свой ответ...

На самом деле есть модификатор "smooth" для построения графика. Кроме того, я добавил еще одну координату в конце и в начале и увеличил значение y соседних координат:

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

Для сравнения приведем ответ Хариша Кумара (оба наложены зеленым цветом), также с двумя дополнительными узлами для достижения сглаживания по оси x.

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

введите описание изображения здесь

решение2

Вы можете использовать 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}

введите описание изображения здесь

Я также внес некоторые упрощения в код для узлов 1, 2, 3 и 4.

Связанный контент