我需要 y 轴上的值为 96,而不是 0.96。也就是说,如何将这些 y 轴值乘以 2?
\documentclass{standalone}
\usepackage{subcaption}
\usepackage{caption}
\usepackage{pgfplots, pgfplotstable}
\usetikzlibrary{positioning}
\pgfplotsset{compat=1.16,width=0.98\textwidth}
%\pgfplotsset{compat=1.16,width=0.98\textwidth}
\usepackage{tikz}
\usepackage[english,spanish]{babel} % multilenguaje
% grid style
\pgfdeclareplotmark{mystar}{
\node[star,star point ratio=2.25,minimum size=6pt,
inner sep=0pt,draw=black,solid,fill=red] {};
}
\decimalpoint
\definecolor{color0}{rgb}{1,1,0}
\definecolor{color1}{rgb}{1,0.647058823529412,0}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis line style={black},
scaled x ticks = false,
legend cell align={left},
legend style={at={(0.97,0.03)}, anchor=south east, draw=black},
tick align=outside,
x grid style={dashed,black!60},
xlabel={$\lambda$},
xmajorticks=true,
xmin=-0.0395, xmax=1.0495,
xtick style={color=black},
y grid style={dashed,black!60},
ylabel={RMSE},
ymajorticks=true,
ymin=0.846942213907375, ymax=0.970121133137966,
ytick style={black},
xtick align=inside,
ytick align=inside,
grid = none,
y tick label style={
/pgf/number format/.cd,
fixed,
fixed zerofill,
precision=4
},
]
\addplot [mark =,line width=0.7pt,blue, mark size=2pt]
table {
0.01 0.8822
0.03 0.8615
0.05 0.854
0.07 0.8597
0.2 0.9155
0.5 0.9344
1 0.9639
};
\addlegendentry{20 f}
\addplot [line width=0.7pt ,black]
table {%
0.01 0.898481256113781
0.03 0.865873246257198
0.05 0.853726601717427
0.07 0.857932550788363
0.2 0.915144334833605
0.5 0.934927092350177
1 0.964522091354758
};
\addlegendentry{30 f}
\addplot [line width=0.7pt, red]
table {%
0.01 0.922581329120646
0.03 0.872177303638855
0.05 0.853365286503622
0.07 0.856359118109799
0.2 0.914724879701767
0.5 0.93512077918702
1 0.964292857206321
};
\addlegendentry{50 f}
\addplot [line width=0.7pt, yellow]
table {%
0.01 0.950247302117098
0.03 0.875862014017094
0.05 0.852945808571336
0.07 0.854889118499624
0.2 0.914000991451563
0.5 0.935209713188576
1 0.963770499326312
};
\addlegendentry{100 f}
\addplot [line width=0.7pt, orange]
table {%
0.01 0.951706952935797
0.03 0.873982593809665
0.05 0.852541255690584
0.07 0.854396792085605
0.2 0.913496001521785
0.5 0.934766529974339
1 0.963747053113756
};
\addlegendentry{150 f}
\end{axis}
\end{tikzpicture}
\end{document}
答案1
只需将precision
参数更改为0
并将参数添加yticklabel = {\pgfmathparse{\tick*100}\pgfmathprintnumber{\pgfmathresult}}
到您的axis
环境中,将值乘以 100 并显示它们:
\documentclass{standalone}
\usepackage{subcaption}
\usepackage{caption}
\usepackage{pgfplots, pgfplotstable}
\usetikzlibrary{positioning}
%\pgfplotsset{compat=1.16,width=0.98\textwidth}
%\pgfplotsset{compat=1.16,width=0.98\textwidth}
\usepackage{tikz}
\usepackage[english,spanish]{babel} % multilenguaje
% grid style
\pgfdeclareplotmark{mystar}{
\node[star,star point ratio=2.25,minimum size=6pt,
inner sep=0pt,draw=black,solid,fill=red] {};
}
\decimalpoint
\definecolor{color0}{rgb}{1,1,0}
\definecolor{color1}{rgb}{1,0.647058823529412,0}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis line style={black},
scaled x ticks = false,
legend cell align={left},
legend style={at={(0.97,0.03)}, anchor=south east, draw=black},
tick align=outside,
x grid style={dashed,black!60},
xlabel={$\lambda$},
xmajorticks=true,
xmin=-0.0395, xmax=1.0495,
xtick style={color=black},
y grid style={dashed,black!60},
ylabel={RMSE},
ymajorticks=true,
ymin=0.846942213907375, ymax=0.970121133137966,
ytick style={black},
xtick align=inside,
ytick align=inside,
grid = none,
y tick label style={
/pgf/number format/.cd,
fixed,
fixed zerofill,
precision=0
},
yticklabel = {\pgfmathparse{\tick*100}\pgfmathprintnumber{\pgfmathresult}}
]
\addplot [mark =,line width=0.7pt,blue, mark size=2pt]
table {
0.01 0.8822
0.03 0.8615
0.05 0.854
0.07 0.8597
0.2 0.9155
0.5 0.9344
1 0.9639
};
\addlegendentry{20 f}
\addplot [line width=0.7pt ,black]
table {%
0.01 0.898481256113781
0.03 0.865873246257198
0.05 0.853726601717427
0.07 0.857932550788363
0.2 0.915144334833605
0.5 0.934927092350177
1 0.964522091354758
};
\addlegendentry{30 f}
\addplot [line width=0.7pt, red]
table {%
0.01 0.922581329120646
0.03 0.872177303638855
0.05 0.853365286503622
0.07 0.856359118109799
0.2 0.914724879701767
0.5 0.93512077918702
1 0.964292857206321
};
\addlegendentry{50 f}
\addplot [line width=0.7pt, yellow]
table {%
0.01 0.950247302117098
0.03 0.875862014017094
0.05 0.852945808571336
0.07 0.854889118499624
0.2 0.914000991451563
0.5 0.935209713188576
1 0.963770499326312
};
\addlegendentry{100 f}
\addplot [line width=0.7pt, orange]
table {%
0.01 0.951706952935797
0.03 0.873982593809665
0.05 0.852541255690584
0.07 0.854396792085605
0.2 0.913496001521785
0.5 0.934766529974339
1 0.963747053113756
};
\addlegendentry{150 f}
\end{axis}
\end{tikzpicture}
\end{document}
答案2
您可以相应地更改值(?)
\documentclass{standalone}
\usepackage{subcaption}
\usepackage{caption}
\usepackage{pgfplots, pgfplotstable}
\usetikzlibrary{positioning}
\pgfplotsset{compat=1.16,width=0.98\textwidth}
%\pgfplotsset{compat=1.16,width=0.98\textwidth}
\usepackage{tikz}
\usepackage[english,spanish]{babel} % multilenguaje
% grid style
\pgfdeclareplotmark{mystar}{
\node[star,star point ratio=2.25,minimum size=6pt,
inner sep=0pt,draw=black,solid,fill=red] {};
}
\decimalpoint
\definecolor{color0}{rgb}{1,1,0}
\definecolor{color1}{rgb}{1,0.647058823529412,0}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis line style={black},
scaled x ticks = false,
legend cell align={left},
legend style={at={(0.97,0.03)}, anchor=south east, draw=black},
tick align=outside,
x grid style={dashed,black!60},
xlabel={$\lambda$},
xmajorticks=true,
xmin=-0.0395, xmax=1.0495,
xtick style={color=black},
y grid style={dashed,black!60},
ylabel={RMSE},
ymajorticks=true,
ymin=84.6942213907375, ymax=97.0121133137966,
ytick style={black},
xtick align=inside,
ytick align=inside,
grid = none,
y tick label style={
/pgf/number format/.cd,
fixed,
fixed zerofill,
precision=4
},
]
\addplot [mark =,line width=0.7pt,blue, mark size=2pt]
table {
0.01 88.22
0.03 86.15
0.05 85.4
0.07 85.97
0.2 91.55
0.5 93.44
1.0 96.39
};
\addlegendentry{20 f}
\addplot [line width=0.7pt ,black]
table {%
0.01 89.8481256113781
0.03 86.5873246257198
0.05 85.3726601717427
0.07 85.7932550788363
0.2 91.5144334833605
0.5 93.4927092350177
1.0 96.4522091354758
};
\addlegendentry{30 f}
\addplot [line width=0.7pt, red]
table {%
0.01 92.2581329120646
0.03 87.2177303638855
0.05 85.3365286503622
0.07 85.6359118109799
0.2 91.4724879701767
0.5 93.512077918702
1.0 96.4292857206321
};
\addlegendentry{50 f}
\addplot [line width=0.7pt, yellow]
table {%
0.01 95.0247302117098
0.03 87.5862014017094
0.05 85.2945808571336
0.07 85.4889118499624
0.2 91.4000991451563
0.5 93.5209713188576
1.0 96.3770499326312
};
\addlegendentry{100 f}
\addplot [line width=0.7pt, orange]
table {%
0.01 95.1706952935797
0.03 87.3982593809665
0.05 85.2541255690584
0.07 85.4396792085605
0.2 91.3496001521785
0.5 93.4766529974339
1.0 96.3747053113756
};
\addlegendentry{150 f}
\end{axis}
\end{tikzpicture}
\end{document}
这会生成以下图表:
如果您不想要尾随的 .0000,只需将精度更改为 0。如果您不想更改您的值,\addplot
请参阅提供的其他答案:)