tikz: y軸のスケーリング

tikz: y軸のスケーリング

プロットが y 軸上で微細にならないように、y 軸を拡大縮小したいと思います。ただし、yscale = xx が何らかの数値である場合、画像と円が歪んでしまいます。何も歪めずに y 軸を延長したいと思います。

\documentclass[tikz]{standalone}

\begin{document}
\begin{tikzpicture}[yscale = 2]
  % x and y axis                                                                
  \draw (-0.5cm, 0) -- (9.5cm, 0) node[font = \small, right] {$k$};
  \draw (-0.5cm, 0) -- (-0.5cm, 0.1cm) node[font = \small, above] {$p_X$};
  % x and y tick marks and probabilities                                        
  \foreach \x in {0, 1, ..., 9}{
    \draw (\x cm, 0) -- (\x cm, -0.1cm) node[below, font = \small] {$\x$};
    \draw[fill = black] (\x cm, 0) -- (\x cm, 0.1cm) circle[radius = 0.025cm];
  }
  \foreach \y in {0.01, ..., 0.1}{
    \draw (-0.5cm, \y cm) -- (-0.6cm, \y cm) node[left, font = \small] {$\y$};
  }
\end{tikzpicture}
\end{document}

答え1

問題は、垂直線と円が同時に描画されることです。したがって、垂直線のみに影響する y スケーリングはありません。ノードを使用すると、この問題は解決します。

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
    \draw(-0.5,0)--(9.5,0)node[font=\small,right]{$k$};
    \draw[yscale=30](-0.5,0)--(-0.5,0.1)node[font=\small,above]{$p_X$};
\foreach\x in{0,...,9}{
    \draw(\x,0)--(\x,-0.1)node[below,font=\small]{$\x$};
    \draw[yscale=30](\x,0)--(\x,0.1)node[circle,fill,draw,scale=.3]{};}
  \foreach\y in{1,...,10}{
\draw[yscale=30](-0.5,\y/100)--(-0.6,\y/100)node[left,font=\small]{$\y$};
}
\end{tikzpicture}
\end{document}

関連情報