
Я пытаюсь построить некоторые точки с резкими изменениями наклона. Но получаю странное поведение, вроде этого:
как вы можете видеть на пиках, там нет никакой гладкости.
Однако я думаю, что проблема в алгоритме интерполяции, поскольку tikz используеткривые Безье. Вот мне интересно, есть ли способ решить эту проблему?
Я привожу здесь только выборку данных. Однако у меня есть несколько графиков с этими разрывами, и я хотел бы получить автоматический способ их исправления. Если нужно, я могу показать больше точек, в которых происходят разрывы.
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotstableread{
0.0000 0.0000
0.1561 0.8615
0.1614 0.8643
0.1669 0.8670
0.3619 0.8670
0.3679 0.8781
0.3739 0.8809
0.3799 0.8809
0.3858 0.8837
0.3918 0.8975
1.0000 1.0000
}\datatable
\begin{document}
\makeatletter
\begin{tikzpicture}
\begin{axis}[
ylabel=label,
no markers,
smooth
]
\addplot table [x index=0, y index=1] \datatable;
\end{axis}
\end{tikzpicture}
\end{document}
решение1
Вы можете добавлять и играть с tension=0.08
опциями оси (чем меньше число, тем резче становится шкала) [0,1]
.
Но главная проблема в том, что у вас есть группы точек, которые слишком близки друг к другу, и внезапно происходит переход к группе с более высоким значением, что ограничивает свободу поворота и делает интерполяцию плохо обусловленной. Я бы предложил исключить слишком близкие(!) точки, если это возможно.