線形コームプロット、ゼロ以外の原点を選択

線形コームプロット、ゼロ以外の原点を選択

私はスペクトルデータをプロットしています。対数軸の場合もあれば、dB単位の線形の場合もあります。この種の図をプロットする通常の方法は(少なくとも私の分野では)、値(負、正)にかかわらず、すべての線をグラフの下部から開始することです。対数コームプロットの場合、これは次のように簡単に実現できます。log origin = infty。しかし、負の値 (線形スケール) のプロットにこのようなものを使用するにはどうすればよいでしょうか。現在、すべてのポイントを最小値だけ上にシフトしてから、すべての yticklabels をシフトしています。ただし、これは面倒で、実際には自動的なソリューションではありません。最適なシフトを見つけるには、最小値を手動で見つける必要があります。これを改善することはできますか。私は次の方法を見つけました。この答えただし、これは対数プロットに関するものです。コードをよく理解していないので、簡単に変更できるかどうかはわかりません。

私が達成しようとしていることを示した 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

無限大の代わりに「非常に大きな数」を 1 つ使用できると思います。ここでは、1000の値に を使用します。次に、の代わりに\verybignumberを使用したコードを適用し、を設定します。\verybignumber130pgfplotsymin

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

ここに画像の説明を入力してください

関連情報