各位老师,我在使用TIKZ编译出多函数的多曲线图时,出现曲线的线型从第六条起,绿线和橙线是虚线的形式显示,但是我代码里都是ultra thick类型,我需要的结果是全部显示为实线条。
另外,Y轴刻度怎样放大100倍,即以百分数的形式来表示。谢谢。
\documentclass[1pt]{standalone}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{euler}
\usepackage{MnSymbol}
\usepackage{stmaryrd}
\usepackage{xcolor}
\usepackage{xfp}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepgfplotslibrary{colormaps}
\usetikzlibrary{pgfplots.groupplots,matrix}
\pgfplotsset{height=8cm,width=14cm}
\begin{document}
\begin{tikzpicture}
\begin{loglogaxis}[
enlargelimits=false,
grid=both,
ymin=5e-6,ymax=1,
ymode=normal,
xlabel= $\mathnormal{Wave\quad length}$,
ylabel=$\mathnormal{amplitude\quad transmission}$,
log basis y=10,
log basis x=10,
domain=1e-3:1e7,samples=360
]
\addplot+[no marks,ultra thick,darkgray]{\fpeval{exp(((0.4697*0.025/\x)^2)*(-3.1415))}};
\addplot+[no marks,ultra thick,gray]{\fpeval{1-exp(((0.4697*0.8/\x)^2)*(-3.1415))}};
\addplot+[no marks,ultra thick,magenta]{\fpeval{exp(((0.4697*0.8/\x)^2)*(-3.1415))}};
\addplot+[no marks,ultra thick,pink]{\fpeval{1-exp(((0.4697*8/\x)^2)*(-3.1415))}};
\addplot+[no marks,ultra thick,blue]{\fpeval{exp(((0.4697*2.5/\x)^2)*(-3.1415))}};
\addplot+[no marks,ultra thick,green]{\fpeval{exp(((0.4697*8/\x)^2)*(-3.1415))}};
\addplot+[no marks,ultra thick,orange]{\fpeval{exp(((0.4697*25/\x)^2)*(-3.1415))}};
\legend{$\mathnormal{\lambda=0.025mm}$,
$\mathnormal{\lambda=0.8mm}$,
$\mathnormal{\lambda=0.8mm}$,
$\mathnormal{\lambda=8mm}$,
$\mathnormal{\lambda=2.5mm}$,
$\mathnormal{\lambda=8mm}$,
$\mathnormal{\lambda=25mm}$,
}
\end{loglogaxis}
\end{tikzpicture}
\end{document}
你这代码习惯太糟糕了,看了下提问者的四个提问,所有的问题就在于你一直写自己看不懂的代码。不知道有什么用的就把它删掉。看不懂的代码往里加,最后出现什么错误结果是不可控的,放在提问里更让问题难以看懂,咱们应该保证明确知道自己写的每一行都是什么意思。
问题有这么几个:
\addplot
后面的加号没有意义,为什么要写?把这些乱七八糟的删掉,结果就对了。
另外你这个运算量太大了点,跑起来特别慢,最好还是用别的软件画好插进来。如果你能够用lualatex编译的话,可以用下面的代码代替xfp宏包,速度会快很多
%!TEX program=lualatex
\documentclass{standalone}
\usepackage{euler}
\usepackage{xcolor}
%\usepackage{xfp}
\usepackage{pgfplots}
\pgfplotsset{height=8cm,width=14cm}
\catcode`\%=12
\def\fpeval#1{\directlua{tex.sprint(string.format("%f",#1))}}
\catcode`\%=14
\begin{document}
\begin{tikzpicture}
\begin{loglogaxis}[
enlargelimits=false,
grid=both,
ymin=5e-6,ymax=1,
ymode=normal,
xlabel= $\mathnormal{Wave\quad length}$,
ylabel=$\mathnormal{amplitude\quad transmission}$,
log basis x=10,
domain=1e-3:1e7,samples=360
]
\addplot[no marks,ultra thick,darkgray]{\fpeval{math.exp(((0.4697*0.025/\x)^2)*(-3.1415))}};
\addplot[no marks,ultra thick,gray]{\fpeval{1-math.exp(((0.4697*0.8/\x)^2)*(-3.1415))}};
\addplot[no marks,ultra thick,magenta]{\fpeval{math.exp(((0.4697*0.8/\x)^2)*(-3.1415))}};
\addplot[no marks,ultra thick,pink]{\fpeval{1-math.exp(((0.4697*8/\x)^2)*(-3.1415))}};
\addplot[no marks,ultra thick,blue]{\fpeval{math.exp(((0.4697*2.5/\x)^2)*(-3.1415))}};
\addplot[no marks,ultra thick,green]{\fpeval{math.exp(((0.4697*8/\x)^2)*(-3.1415))}};
\addplot[no marks,ultra thick,orange]{\fpeval{math.exp(((0.4697*25/\x)^2)*(-3.1415))}};
\legend{$\mathnormal{\lambda=0.025mm}$,
$\mathnormal{\lambda=0.8mm}$,
$\mathnormal{\lambda=0.8mm}$,
$\mathnormal{\lambda=8mm}$,
$\mathnormal{\lambda=2.5mm}$,
$\mathnormal{\lambda=8mm}$,
$\mathnormal{\lambda=25mm}$,
}
\end{loglogaxis}
\end{tikzpicture}
\end{document}