我想知道使用此代码是否有解决方案来绘制如附图所示的图表。
\begin{figure}[h!]
\begin{center}
\begin{tikzpicture}
\begin{axis}[
title= \large \textbf{Surge},
title style={yshift=1cm},
title style = {yshift=-5mm},
ylabel near ticks,
xlabel={Velocity [m/s]},
ylabel={Surge [N]},
height = 6cm,
width = 13cm,
grid = both,
xmin=0,xmax=45,
ymin=20000,ymax=40000,
xtick={0,5,...,45},
ytick={0,10000,...,80000},
legend style={at={(0.5,-0.35)},
anchor=north,legend columns=-1}]
\addplot [mark=o,mark size=2,line width=1.5pt, red] table[x index=0,y index=1, col sep=comma] {Surge.txt};
\addlegendentry{CFD}
\end{axis}
\end{tikzpicture}
\caption{Surge}.
\label{6}
\end{center}
\end{figure}
我总是收到这个错误:“尺寸太大 \pgf@yy \end{axis}“
当轴范围存在很大差异时,有什么方法可以管理轴?
谢谢。
答案1
作为敲击解释这个帖子,这是由<first>,<second>,...,<final>
y 刻度的语法引起的。因此,您可以明确指定所有刻度值或指定 y 刻度的数量。此外,如果您想避免 y 刻度的科学计数法,您可以使用scaled ticks=false
。因此,您可以这样做(因为我没有您的数据,所以我选择了一些函数):
代码
\documentclass[tikz, border=2mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{axis}
[ ylabel near ticks,
height = 6cm,
width = 13cm,
grid = both,
xmin=0,
xmax=45,
ymin=20000,
ymax=80000,
domain=0:45,
samples=180,
scaled ticks=false,
xtick={0,5,...,45},
ytick={0,20000,40000,60000,80000},
]
\addplot [mark=o,mark size=2,line width=1.5pt, red] {95000*sin(x*20))};
\end{axis}
\end{tikzpicture}
\end{document}