首页 > 解决方案 > 使用平滑选项绘制曲线的问题

问题描述

这是同一张图的两倍,除了一个是平滑的。如果你编译它,你会看到。

\documentclass[
]{scrreprt}     
\usepackage[backend=biber]{biblatex} 
\usepackage{pgfplots}
\usepackage{tikz}
\begin{document}

\begin{figure*}[!ht]
\centering  
\begin{tikzpicture}
\begin{axis}[%
scatter/classes={%
1={mark=diamond*,draw=black},
0={mark=o,draw=black}},
yticklabels={},ytick style = {draw=none},  xticklabels={},xtick style = {draw=none},
xmin=0,
xmax=200,
ymin=0,
ymax=11,
width=12cm,
height=7cm]
\addplot[smooth,black]
coordinates{
            (0,10)
            (10,1)
            (200,0.1)
            };
            
\addplot[ dashed, black]
        coordinates{
            (0,10)
            (10,1)
            (200,0.1)
            };
\end{axis}  
\end{tikzpicture}   
\end{figure*}
\end{document}

我真正想要实现的是第二个数据点给出了一条平滑的曲线。但是,如您所见,使用选项 smooth 绝对不能在这里完成工作。我尝试了更多数据点,但没有任何效果,这只是给了我奇怪的结果。此外,从第二个数据点到最后一个数据点的近似值也无法按预期工作。

如果你问它实际上应该是什么样子,谷歌 Goodfellow 概括。我想在训练和泛化错误之间进行比较。

非常感谢每一个建议!

标签: plotlatex

解决方案


您可以使用以下tension参数调整平滑度:

\documentclass[
]{scrreprt}     
\usepackage[backend=biber]{biblatex} 
\usepackage{pgfplots}
\usepackage{tikz}
\begin{document}

\begin{figure*}[!ht]
\centering  
\begin{tikzpicture}
\begin{axis}[%
scatter/classes={%
1={mark=diamond*,draw=black},
0={mark=o,draw=black}},
yticklabels={},ytick style = {draw=none},  xticklabels={},xtick style = {draw=none},
xmin=0,
xmax=200,
ymin=0,
ymax=11,
width=12cm,
height=7cm]
\addplot[smooth,black,tension={0.15}]
coordinates{
            (0,10)
            (10,1)
            (200,0.1)
            };
            
\addplot[ dashed, black]
        coordinates{
            (0,10)
            (10,1)
            (200,0.1)
            };
\end{axis}  
\end{tikzpicture}   
\end{figure*}
\end{document}

推荐阅读