この記事の続き.
プリアンブルや使うデータセットは前回の記事を参照.
軸は何も指定しなければ自動で計算してくれるが, 自分でいろいろといじりたいことが多いので, そのことについてまとめておく.
詳細はマニュアルの Data Visualization の章の Axes の節を参照.
他の記事へのリンクも書いておく.
軸の基本
軸の設定を編集するには, \datavisualization
コマンドに以下のオプションを追加する.
\datavisualization[
...,
x axis={...},
y axis={...},
all axes={...}
]
data[...];
名前の通り, x axis
でx軸, y axis
でy軸, all axes
で両方の軸を編集する.
軸ラベルを入れる
label
でラベルを指定できる.
\begin{tikzpicture}
\datavisualization[
scientific axes,
visualize as line/.list={tri, qua},
tri={style={blue}},
qua={style={red}},
x axis={label},
y axis={label={$y$軸のラベル}}
]
data[set=tri, headline={x, y}, read from file=triangle.csv]
data[set=qua, headline={x, y}, read from file=quadrangle.csv];
\end{tikzpicture}
単に label
とだけ指定したら, $x$ または $y$ が出力される.
label={...}
とすれば, 好きなように指定できる.
デフォルトではy軸のラベルは横向きになるが, 変更することは可能なようだ (マニュアル参照).
軸の範囲を指定する
min value
で最小値を, max value
で最大値を指定できる.
\begin{tikzpicture}
\datavisualization[
scientific axes,
visualize as line/.list={tri, qua},
tri={style={blue}},
qua={style={red}},
x axis={min value=0.5, max value=6},
y axis={max value=5}
]
data[set=tri, headline={x, y}, read from file=triangle.csv]
data[set=qua, headline={x, y}, read from file=quadrangle.csv];
\end{tikzpicture}
最小値と最大値の一方だけを指定した場合, 指定しなかった方はデータから自動で計算される.
軸の目盛りを変更する
目盛りの幅を変える
ticks={step=}
で目盛りの幅を指定する.
\begin{tikzpicture}
\datavisualization[
scientific axes,
visualize as line/.list={tri, qua},
tri={style={blue}},
qua={style={red}},
x axis={ticks=few},
y axis={ticks={step=0.5}}
]
data[set=tri, headline={x, y}, read from file=triangle.csv]
data[set=qua, headline={x, y}, read from file=quadrangle.csv];
\end{tikzpicture}
上のy軸のように, ticks={step=間隔}
とすれば, 指定した間隔で目盛りをつける.
自分で指定するのではなく, 大雑把に計算させることもできて, それがx軸の ticks=few
である.
few
以外にも指定できる.
オプション | 目盛り量 |
---|---|
none | 無し |
few | 少ない |
some | そこそこ |
many | 多い |
補助目盛りをつける
tikz={minor steps between steps=}
というオプションで補助目盛りの個数を指定する.
\begin{tikzpicture}
\datavisualization[
scientific axes,
visualize as line/.list={tri, qua},
tri={style={blue}},
qua={style={red}},
x axis={ticks={minor steps between steps=3}},
y axis={ticks={minor steps between steps}}
]
data[set=tri, headline={x, y}, read from file=triangle.csv]
data[set=qua, headline={x, y}, read from file=quadrangle.csv];
\end{tikzpicture}
minor steps between steps=n
と書いたら, 補助目盛りを n
個描く.
(つまり, メインの目盛り間を (n+1) 等分する. 植木算に注意.)
minor steps between steps
とだけ書いたら, =9
と同じになる. つまり10等分.
描画範囲の大きさを変える
x軸, y軸の長さはデータセットから自動で計算されている?
これを自分で設定したければ, 各軸のオプションで length=長さ
と指定する.
\begin{tikzpicture}
\datavisualization[
scientific axes,
visualize as line/.list={tri, qua},
tri={style={blue}},
qua={style={red}},
x axis={length=6cm},
y axis={length=5cm}
]
data[set=tri, headline={x, y}, read from file=triangle.csv]
data[set=qua, headline={x, y}, read from file=quadrangle.csv];
\end{tikzpicture}
アスペクト比を変える
何も指定しないとアスペクト比はデータセットから自動で計算される.
アスペクト比を指定するオプションは無いようだが, 代わりに unit length=
で "座標 $1$ の長さ" を指定できる.
\begin{tikzpicture}
\datavisualization[
scientific axes,
visualize as line/.list={tri, qua},
tri={style={blue}},
qua={style={red}},
x axis={unit length=1cm},
y axis={unit length=3mm per 0.2 units}
]
data[set=tri, headline={x, y}, read from file=triangle.csv]
data[set=qua, headline={x, y}, read from file=quadrangle.csv];
\end{tikzpicture}
"座標 $1$ の長さ" と書いたが, これはx軸なら「2点 $(0,0)$ と $(1,0)$ の間の距離」という意味である.
上の例のy軸で指定されている unit length=A per B units
とは, "座標 B
の長さ" を A
にするという意味である.
上の例であれば, 2点 $(0,0)$ と $(0,0.2)$ の間の距離が 3mm になっている.
スケールがとても大きいときやとても小さいときに有用だと思う.
all axes
の方で unit length
を指定すれば, アスペクト比を 1:1 にできる.
\begin{tikzpicture}
\datavisualization[
scientific axes,
visualize as line/.list={tri, qua},
tri={style={blue}},
qua={style={red}},
all axes={unit length=9mm}
]
data[set=tri, headline={x, y}, read from file=triangle.csv]
data[set=qua, headline={x, y}, read from file=quadrangle.csv];
\end{tikzpicture}
注意: unit length
と label
の組み合わせはなぜか相性が悪い
unit length
と label
を同時に使うと, ラベルの位置が座標 $0.5$ の位置になってしまう.
\begin{tikzpicture}
\datavisualization[
scientific axes,
visualize as line/.list={tri, qua},
tri={style={blue}},
qua={style={red}},
all axes={unit length=9mm, label},
]
data[set=tri, headline={x, y}, read from file=triangle.csv]
data[set=qua, headline={x, y}, read from file=quadrangle.csv];
\end{tikzpicture}
軸のデフォルトの設定で goto pos=.5
というオプションが(実は)入っているのが悪さをしているのだと思う (多分) が, 解決策がわからない...
なお, unit length
ではなく length
なら問題ない.
もし unit length
を指定した上で軸ラベルを書きたい場合は, info{...}
を使って直接座標を指定するというバッドノウハウでやるしかないと思う.
info{...}
の使い方は別の記事を参照.
対数スケールを用いる
今の例で対数目盛りを用いても意味が無いが, logarithmic
で軸ごとに対数スケールに変えることができる.
\begin{tikzpicture}
\datavisualization[
scientific axes,
visualize as line/.list={tri, qua},
tri={style={blue}},
qua={style={red}},
y axis={logarithmic, min value=0.1, max value=10}
]
data[set=tri, headline={x, y}, read from file=triangle.csv]
data[set=qua, headline={x, y}, read from file=quadrangle.csv];
\end{tikzpicture}
両対数にしたければ all axes
の方で指定すれば良いし, 補助目盛りも自動で対数スケールになる.
ただし, 対数スケールの場合の補助目盛りのキリを良くするには9等分にしないといけないことに注意.
\begin{tikzpicture}
\datavisualization[
scientific axes,
visualize as line/.list={tri, qua},
tri={style={blue}},
qua={style={red}},
x axis={ticks={minor steps between steps=8}},
all axes={logarithmic, min value=0.1, max value=10}
]
data[set=tri, headline={x, y}, read from file=triangle.csv]
data[set=qua, headline={x, y}, read from file=quadrangle.csv];
\end{tikzpicture}