我试图在一个图形中绘制两个 3D 图,但 Latex 出于某种原因停止识别 zmin 和 zmax 值,因此无法编译,因为尺寸太大。减少样本数量并不能解决这个问题。
我也不知道如何更改其中一个图表的颜色,因为必须在轴环境中进行切换,并且两个图表都一样。如果我创建一个新的轴环境,我就不能再创建图例了。我不得不暂时将图表变成网格,因为这是使它们具有不同颜色的唯一方法。
有什么帮助吗?提前致谢!代码如下:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\usepackage{upgreek}
\pgfplotsset{compat=1.16}
\usepackage{tikz}
\usepackage{siunitx}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[xmin=0.1, ymin=0.1, xmax=2.0, ymax=2.5, zmin=0, zmax=140, xlabel=$x_1$, ylabel=$x_2$, zlabel=$\sigma$, width=1\linewidth, view={-60}{20}, legend style={at={(1,1)}, anchor=center, legend columns=-1}]
\addplot3[mesh,draw=red,samples=45]
{(44.5*1000 * (1 + x) * sqrt(1 + x^2)) / (2 * sqrt(2) * x * y * 6.452/10000) / 1000000}; % \sigma_1 in MPa
\addplot3[mesh,draw=blue,samples=45]
{(44.5*1000 * (x - 1) * sqrt(1 + x^2)) / (2 * sqrt(2) * x * y * 6.452/10000) / 1000000}; % \sigma_2 in MPa
\legend{$\sigma_1$,$\sigma_2$}
\end{axis}
\end{figure}
\end{document}
答案1
您的代码缺少一个\end{tikzpicture}
,并且您还想设置适当的域以避免维度过大的错误。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\usepackage{upgreek}
\pgfplotsset{compat=1.16}
\usepackage{siunitx}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[xmin=0.1, ymin=0.1, xmax=2.0, ymax=2.5, zmin=0, zmax=140, xlabel=$x_1$, ylabel=$x_2$, zlabel=$\sigma$, width=1\linewidth, view={-60}{20},
legend style={at={(1,1)}, anchor=center, legend columns=-1},
samples=45,domain=0.1:2,domain y=0.1:2]
\addplot3[mesh,draw=red]
{(44.5*1000 * (1 + x) * sqrt(1 + x^2)) / (2 * sqrt(2) * x * y * 6.452/10000) / 1000000}; % \sigma_1 in MPa
\addplot3[mesh,draw=blue]
{(44.5*1000 * (x - 1) * sqrt(1 + x^2)) / (2 * sqrt(2) * x * y * 6.452/10000) / 1000000}; % \sigma_2 in MPa
\legend{$\sigma_1$,$\sigma_2$}
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}