初めて TikZ と pgfplots を使用しています。(私が教えている微積分学のクラスの生徒に授業ノートを送信できるようにするために使用しています。) 傾斜漸近線のあるグラフがあります。グラフに pgfplots を使用する前に、グラフの線だけを調整する必要があります。
別の投稿で、両端の線を 2ex だけ短くする方法を見ましたshorten <=2ex, shorten >=2ex
。このコマンドは垂直線を短くしましたが、斜め線は短くしませんでした。両方の線に矢印を付けたいのですが、矢印は垂直線上にありますが、斜め線上にはありません。線と同じ方向にラベルを付けたいのですが、線からは外れています。そのため、ラベルを 1 つ上に、ラベルを 1 つ右に移動する必要があります。arctan(3/2) = 56.31 度なので、rotate=56.31
ノードのオプションで使用しました。このようなラベルを線と同じ方向に描画するための「slant」コマンドはありますか? もう 1 つ。y 軸のラベル「y」が垂直線 x=3/2 に近すぎます。位置を調整するにはどうすればよいでしょうか? (x 軸の「x」の位置も気に入りません。)
\documentclass{amsart}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\begin{axis}[width=4in,axis equal image,
axis lines=middle,
xmin=-15,xmax=15,
xlabel=$x$,ylabel=$y$,
ymin=-10,ymax=10,
restrict y to domain=-12:12,
enlargelimits={abs=1cm},
axis line style={latex-latex},
ticklabel style={font=\tiny,fill=white},
xtick={\empty},ytick={\empty},
]
\draw[dashed,latex-latex,shorten <=2ex, shorten >=2ex] (-13,-17) -- (13,22) node[right,rotate=56.31,pos=0.1]{$\scriptstyle{y=(3/2)x+5/2}$};
\draw[dashed,latex-latex,shorten <=2ex, shorten >=2ex] ({1.5,0} |- {{axis description cs:1,1}}) -- ({{1.5,0}} |- {{axis description cs:1,-1}}) node[right,rotate=90,pos=0.5]{$\scriptstyle{x=3/2}$};
\end{axis}
\end{tikzpicture}
\end{document}
答え1
コマンドが確実に動作しない理由は、shorten
線の端が見えないためです。線の端はプロット領域の外側にあり、切り取られています。線全体を表示するには、オプションclip=false
に追加しますaxis
。
私は別の方法でこれに取り組みます。コマンドを使用する代わりに\draw
、コマンドで「実際の」プロットを使用できます\addplot
。そうすれば、回転の角度を事前に計算する必要がなく、方程式を直接指定できます。
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\begin{axis}[width=4in,axis equal image,
clip=false,
axis lines=middle,
xmin=-15,xmax=15,
domain=-15:15, samples=50,
xlabel=$x$,ylabel=$y$,
ymin=-10,ymax=10,
restrict y to domain=-12:12,
enlargelimits={abs=1cm},
axis line style={latex-latex},
ticklabel style={font=\tiny,fill=white},
xtick={\empty},ytick={\empty},
]
\addplot [dashed, latex-latex] {(3/2)*x+5/2} node [pos=0.25, anchor=south, font=\footnotesize, sloped] {$y=(3/2)x+5/2$};
\addplot [dashed, latex-latex] (1.5,x) node [pos=0.25, anchor=north, font=\footnotesize, sloped] {$x=3/2$};
\end{axis}
\end{tikzpicture}
\end{document}
答え2
sloped
角度を計算する代わりに、オプションを使用できます。
ノート:
- また、スラットの分数を に置き換えたところ、
\frac
見た目がはるかに良くなったと思います。 - 軸のラベルを先端に表示するには、
Axis Labels At Tip
私が抽出したスタイルを使用します。`\begin{axis}...\end{axis}` を持つ TikZ/PGF 画像を適切に拡大縮小する方法。 - 両端に矢印がなかった理由は、 を設定するとわかります
clip=false
。線は表示範囲をはるかに超えていました。そのため、座標を編集して線の終点を範囲内に収めるか、線を短くする量を増やすことができます。以下の MWE では、shorten
同じ傾斜と位置を維持するために適切な座標を計算するよりも簡単だったので、量を増やしました。
コード:
\documentclass{amsart}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
%% https://tex.stackexchange.com/questions/17438/how-to-properly-scale-a-tikz-pgf-picture-which-has-a-beginaxis-endaxis
%%
\pgfkeys{/pgfplots/Axis Labels At Tip/.style={
xlabel style={
at={(current axis.right of origin)},
xshift=1.5ex, anchor=center
},
ylabel style={
at={(current axis.above origin)},
yshift=1.5ex, anchor=center
}
}
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[width=4in,axis equal image,
axis lines=middle,
xmin=-15,xmax=15,
xlabel=$x$,ylabel=$y$,
ymin=-10,ymax=10,
restrict y to domain=-12:12,
enlargelimits={abs=1cm},
axis line style={latex-latex},
ticklabel style={font=\tiny,fill=white},
% xtick={\empty},ytick={\empty},
Axis Labels At Tip,
%clip=false
]
\draw[dashed,latex-latex,shorten <=4ex, shorten >=15ex] (axis cs: -13,-17) -- (axis cs: 13,22) node[right,sloped, above,pos=0.15]{$y=\frac{3}{2}x+ \frac{5}{2} $};
\draw[dashed,latex-latex,shorten <=2ex, shorten >=2ex] ({1.5,0} |- {{axis description cs:1,1}}) -- ({{1.5,0}} |- {{axis description cs:1,0}}) node[right,rotate=90, below, pos=0.65]{$x= \frac{3}{2}$};
\end{axis}
\end{tikzpicture}
\end{document}