我正在使用该包制作 3D 图pgfplots
。我旋转了最能显示我想要描绘的响应曲线的图形。但是,轴的位置不理想。此外,atkinson
尽管在序言中调用了该包,但 pgfplot 的文本并非如此。我想在图形中更改以下内容:
- 将
y
和z
轴重新定位到图表的左侧。 - 制作情节字体
atkinson
。 - 固定轴的各个箭头:使
y axis
向上的箭头z axis
指向两个方向。
我的 MWE 如下:
\documentclass[margin=1cm]{standalone}
% Required package
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usepgfplotslibrary{statistics}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
view/h=-70,
view/v=10,
grid=both,
xlabel=$I_a$, ylabel=$I_b$, zlabel=$R(s)$,
colormap={blackwhite}{gray(0cm)=(1); gray(1cm)=(0)},
axis lines=middle,
axis line style={latex-, black},
]
\addplot3[
surf,
domain=-5:8,
domain y=0.5:5,
opacity = 0.75,
] {1/(1+exp(-(x/y)))};
\end{axis}
\end{tikzpicture}
\end{document}
目前的结果如下:
答案1
至于字体,请参阅此答案,了解如何在绘图中使用无衬线字体。这并不简单,因为刻度数处于数学模式。因此,您基本上需要替换数学字体。但是,为此,您可以使用包sansmath
。由于轴标签也包含数学,因此它们不会使用字体atkinson
。
关于轴的移动,这在 3D 绘图中有点棘手,因为您不能简单地沿其他维度之一移动轴(至少据我所知)。因此,我建议您在 y 轴上将绘图移动 5 并让轴在原点相交。
至于轴的箭头,您可以使用x axis line style
、y axis line style
和z axis line style
来单独设置轴的样式。
除上述之外,我还尝试优化刻度标签和轴标签的位置。
\documentclass[margin=1cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usepackage[sfdefault]{atkinson}
\usepackage{sansmath}
\begin{document}
\begin{tikzpicture}[font=\sansmath]
\begin{axis}[
view/h=-70,
view/v=10,
grid=both,
xlabel=$I_a$, ylabel=$I_b$, zlabel=$R(s)$,
colormap={blackwhite}{gray(0cm)=(1) gray(1cm)=(0)},
axis lines=center,
x axis line style={stealth-},
y axis line style={-stealth},
z axis line style={stealth-stealth},
xlabel style={at={(xticklabel cs:0,-20pt)}, anchor=south east},
ylabel style={at={(yticklabel cs:0,-20pt)}, anchor=south west},
zlabel style={at={(zticklabel cs:1,-30pt)}, anchor=west},
xticklabel style={shift={(-2pt,2pt)}},
zticklabel style={shift={(-4pt,0pt)}},
]
\addplot3[
surf,
domain=-5:8,
domain y=-0.5:-5,
opacity=0.75,
] {1/(1+exp(-(x/(y+5.5))))};
\end{axis}
\end{tikzpicture}
\end{document}