如何制作 Tufte 风格的“基于数据的标签”,显示数据的最大值和最小值

如何制作 Tufte 风格的“基于数据的标签”,显示数据的最大值和最小值

我正在尝试制作一个图表,其中绘制数据的最大值和最小值反映在轴上,并且轴线在该值之后停止。虽然有时我希望噪声数据出现在较大/较小的值处。

我尝试按照建议偏移轴帖子。您可以看到的问题是,在这种情况下,我希望轴从 -0.1 到 -0.7,并在这些位置打勾。问题是,如果您有嘈杂的数据,它会在 ymin 和 ymax 之后被剪裁。

我在底部提供了一个手动编辑的示例。

\documentclass{standalone}
\usepackage{pgfplots} 

\newlength\xaxisoffset
\setlength\xaxisoffset{-10pt}

\begin{document}
    \begin{tikzpicture}
        \begin{axis}[
        every non boxed x axis/.style={ %Shifts the x axis downwards
            x axis line style={yshift=\xaxisoffset},
            xticklabel style={yshift=\xaxisoffset},
            xtick style={very thin,yshift=\xaxisoffset},
        }, 
        xmin = -.09, xmax=.09,
        axis x line=bottom,
        axis y line*=left,
        ymin = -0.7, ymax = -0.08,
        ytick={-.1, -.7},
        ]
        \addplot[smooth, black] table[x=B, y=R_NL] {SV018_RR2B2.dat};
        \end{axis};
    \end{tikzpicture}
\end{document}

根据代码绘图 我想要的情节

答案1

  • 可以通过选项禁用剪辑clip=false
  • x 标签的数量级(·10 -2)向下移动两次;x tick scale label style={yshift=-\xaxisoffset}进行补偿。

完整示例文件:

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}

\newlength\xaxisoffset
\setlength\xaxisoffset{-40pt}

\begin{document}
  \begin{tikzpicture}  
    \begin{axis}[    
      clip=false,  
      every non boxed x axis/.style={% Shifts the x axis downwards  
        x axis line style={yshift=\xaxisoffset},    
        xticklabel style={yshift=\xaxisoffset},    
        x tick scale label style={yshift=-\xaxisoffset},    
        xtick style={very thin,yshift=\xaxisoffset},    
      },   
      xmin = -.09, xmax=.09, 
      axis x line=bottom,  
      axis y line*=left,  
      ymin = -0.7, ymax = -0.1,  
      ytick={-.1, -.7},  
    ]    
      \addplot[smooth, black] coordinates {  
         (-.08, -.5) (-.06, -.8) (-.04, -.5) (-.02, -.7)  
         (-.0, -.1) (.02, -.4) (.04, -.05) (.06, -.2) (.08, -.75)  
      };  
    \end{axis};    
  \end{tikzpicture}  
\end{document}

结果

相关内容