Для создания показанного ниже графика я использую следующий код.
\documentclass[a4paper]{article}
\usepackage{pgfplots}
\usepackage{pgfplotstable}%fitting functions
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.15}
\pgfplotsset{label style={font=\Large},
tick label style={font=\Large}}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[
xmode=log,
ymode=log,
enable tick line clipping=false,
width=9cm,
height=7cm,
axis line style=semithick,
x tick style={black,semithick},
xmin=1,xmax=100,
xtick={1,10,100},
xtick pos=bottom,
minor x tick num=9,
xtick align=outside,
y tick style={black,semithick},
ymin=0.1,ymax=10,
ytick={0.1,1,10},
ytick pos=left,
minor y tick num=9,
ytick align=outside,
]
\addplot [blue,mark=*,mark options={scale=1.5,blue}]
table [x=x,y=y] {
x y
2 0.5
10 1
50 3
};
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
Когда я хочу отобразить дополнительную второстепенную метку, скажем, 3, на оси Y, просто добавляя 3 в диапазон оси Y, ytick={0.1,1,3,10},
я получаю такой график
Тик 10^0.48 — это второстепенный тик, но его длина каким-то образом стала равна длине основного тика. Кроме того, почему исчезли остальные второстепенные тики? Я использовал команду minor y tick num=9,
в коде. Как мне написать 3 вместо 10^0.48 и добавить любую метку второстепенного тика, например 0.5 или 7?
решение1
Я полагаю, вы ищете что-то вроде следующего, верно?
При добавлении неравноудалённых тактов автоматически вычисляемые второстепенные такты исчезают. Это предполагаемое поведение (и обычно то, что вам нужно).
% used PGFPlots v1.16
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmode=log,
ymode=log,
xmin=1,xmax=100,
ymin=0.1,ymax=10,
xtick={1,10,100},
ytick={0.1,1,10},
xtick pos=bottom,
ytick pos=left,
xtick align=outside,
ytick align=outside,
tick style={black,semithick},
% these don't have any effect, because they are the default anyway
% minor x tick num=9,
% minor y tick num=9,
% add an extra tick with the corresponding label
extra y ticks={3.5},
extra y tick labels={3.5},
% and change the style of the tick to the ones of the minor ticks
extra tick style={
tickwidth=\pgfkeysvalueof{/pgfplots/minor tick length},
},
]
\addplot table [x=x,y=y] {
x y
2 0.5
10 1
50 3
};
\end{axis}
\end{tikzpicture}
\end{document}