선형 빗 플롯, 0과 다른 원점 선택

선형 빗 플롯, 0과 다른 원점 선택

때로는 로그 축을 사용하고 때로는 선형이지만 dB 단위의 값을 사용하여 스펙트럼 데이터를 플로팅하고 있습니다. 이러한 종류의 다이어그램을 그리는 일반적인 방법(적어도 내 분야에서는)은 값(음수, 양수)에도 불구하고 모든 선이 그래프의 아래쪽 부분에서 시작하도록 하는 것입니다. 대수 빗 플롯의 경우 이는 를 사용하여 쉽게 달성할 수 있습니다 log origin = infty. 그러나 음수 값(선형 눈금)이 있는 플롯에 이와 같은 것을 어떻게 사용할 수 있습니까? 현재 모든 포인트를 가장 작은 값만큼 위로 이동한 다음 모든 yticklabel을 이동하고 있습니다. 그러나 이는 번거롭고 실제로 자동 솔루션은 아닙니다. 최적의 이동을 찾기 위해서는 가장 작은 값을 직접 찾아야 합니다. 이것이 개선될 수 있습니까? 내가 발견했다이 답변, 그러나 이것은 로그 플롯에 관한 것입니다. 코드를 잘 이해하지 못해서 쉽게 수정할 수 있는지 모르겠습니다.

내가 달성하려는 MWE는 다음과 같습니다.

\documentclass{article}

\usepackage{pgfplots} 

\begin{document}
    \begin{tikzpicture}
        \begin{axis}
            [
                % I'm using this:
                yticklabel = {\pgfmathparse{\tick-130}\pgfmathprintnumber{\pgfmathresult}},
                y filter/.expression = {y + 130},
                ymin = 0
                % I would like to have this:
                % comb origin = -infty % or something
            ]
            \addplot[ycomb] coordinates {
                (1, -6)
                (2, -80)
                (3, -85)
                (4, -120)
                (5, -120)
                (6, -120)
                (7, -120)
                (8, -120)
                (9, -120)
            };
        \end{axis}
    \end{tikzpicture}
\end{document}

결과는 다음과 같습니다. 샘플 출력

이 이동을 수행하지 않으면 결과는 다음과 같습니다(모든 빗은 y = 0에서 시작하므로). 잘못된 출력

답변1

무한대 대신에 하나의 "매우 큰 숫자"를 사용할 수 있다고 생각합니다. 여기서는 의 1000값을 사용합니다 \verybignumber. 그런 다음 \verybignumber대신에 코드를 적용하고 설정 130하겠습니다 .pgfplotsymin

\documentclass[border=7pt]{standalone}
\usepackage{pgfplots}
\def\verybignumber{1000}
\begin{document}
  \begin{tikzpicture}
    \begin{axis}
      [
        yticklabel = {\pgfmathparse{\tick-\verybignumber}\pgfmathprintnumber{\pgfmathresult}},
        y filter/.expression = {\verybignumber+y},
      ]
      \addplot[ycomb] coordinates {
        (1, -6)
        (2, -80)
        (3, -85)
        (4, -120)
        (5, -120)
        (6, -120)
        (7, -120)
        (8, -120)
        (9, -120)
      };
    \end{axis}
  \end{tikzpicture}
\end{document}

여기에 이미지 설명을 입력하세요

관련 정보