
사진과 비슷한 그래프를 만들어야 합니다. LATEX으로 시작하는 코드가 있지만 제대로 작동하지 않습니다. 사진과 같이 비문도 추가해야 하며, 자신의 언어로 작성할 수 있고 편집할 수 있습니다. 정말 도움이 필요해요.
내 코드:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}
\usepackage[english, russian]{babel}
\usepackage[utf8]{inputenc}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ybar,
ymin=0, ymax=14, % Устанавливаем минимальное и максимальное значение по оси Y
ymajorgrids=true, % Включаем сетку по оси Y
bar width=8pt, % Ширина столбцов
xlabel={Частота, Гц}, % Подпись оси X
ylabel={Среднеквадратическое значение напряжения, В}, % Подпись оси Y
xtick={220,225,...,320}, % Значения по оси X
xticklabels={220,225,...,320}, % Подписи значений по оси X
x tick label style={rotate=45,anchor=east}, % Стиль подписей по оси X
xticklabel style={
/pgf/number format/1000 sep=, % Убираем разделитель тысяч
rotate=90, % Поворачиваем подписи на 90 градусов
anchor=east % Якорь для поворота
},
enlarge x limits=0.05, % Увеличиваем пределы оси X для визуального комфорта
legend style={at={(0.5,-0.2)},anchor=north,legend columns=-1} % Расположение легенды
]
% Данные графика
\addplot coordinates {(220,0.5) (225,0.5) (230,0.5) (235,0.5) (240,0.5) (245,0.75) (250,14) (255,0.75) (260,1) (265,1.25) (270,1.5) (275,1.75) (280,2) (285,8) (290,6) (295,4) (300,3) (305,2) (310,1) (315,0.5) (320,0.5)};
% Добавляем пунктирные линии для подгрупп
\draw [dashed] (axis cs:240,0) -- (axis cs:240,14);
\draw [dashed] (axis cs:250,0) -- (axis cs:250,14);
\draw [dashed] (axis cs:290,0) -- (axis cs:290,14);
% Подписи для групп
\node at (axis cs:245,15) [anchor=north] {Гармоническая подгруппа};
\node at (axis cs:320,15) [anchor=north] {Интергармоническая группа};
\end{axis}
\end{tikzpicture}
\end{document}
답변1
이를 수행하는 방법은 다음과 같습니다.
변경 사항을 로 표시했습니다 % <<<
. 하지만 장식을 도입하면 외부 상자에 이상한 효과가 나타나서 해결할 수 없었습니다. 우회는 예를 들어 장식을 다시 제거하고 수동으로 수평 경로를 구성하는 것일 수 있습니다.
\documentclass[border=3mm]{standalone} % <<<
\usepackage{pgfplots}
\pgfplotsset{compat=1.17,width=20cm} % <<<
\usepackage[english, russian]{babel}
\usepackage[utf8]{inputenc}
\usetikzlibrary{decorations.pathreplacing} % <<<
\begin{document}
\begin{tikzpicture}[% some styles
txt/.style={fill=white,anchor=center},
decoration={brace,amplitude=3mm},
]
\begin{axis}[
ybar,
ymin=0, ymax=16, % <<< % Устанавливаем минимальное и максимальное значение по оси Y
ymajorgrids=true, % Включаем сетку по оси Y
bar width=8pt, % Ширина столбцов
xlabel={Частота, Гц}, % Подпись оси X
ylabel={Среднеквадратическое значение напряжения, В}, % Подпись оси Y
xtick={220,225,...,320}, % Значения по оси X
xticklabels={220,225,...,320}, % Подписи значений по оси X
x tick label style={
rotate=-90, % <<<
anchor=east}, % Стиль подписей по оси X
xticklabel style={
/pgf/number format/1000 sep=, % Убираем разделитель тысяч
rotate=90, % Поворачиваем подписи на 90 градусов
anchor=east % Якорь для поворота
},
enlarge x limits=0.05, % Увеличиваем пределы оси X для визуального комфорта
legend style={at={(0.5,-0.2)},anchor=north,legend columns=-1} % Расположение легенды
]
% Данные графика
\addplot coordinates {(220,0.5) (225,0.5) (230,0.5) (235,0.5) (240,0.5) (245,0.75) (250,14) (255,0.75) (260,1) (265,1.25) (270,1.5) (275,1.75) (280,2) (285,8) (290,6) (295,4) (300,3) (305,2) (310,1) (315,0.5) (320,0.5)};
% Добавляем пунктирные линии для подгрупп
% \draw [dashed] (axis cs:240,0) -- (axis cs:240,14);
% \draw [dashed] (axis cs:250,0) -- (axis cs:250,14);
% \draw [dashed] (axis cs:290,0) -- (axis cs:290,14);
\draw [dashed] (axis cs:237.3,0) -- (axis cs:237.5,14);
\draw [dashed] (axis cs:252.5,0) -- (axis cs:252.5,14);
\draw [dashed] (axis cs:247.5,0) -- (axis cs:247.5,12);
\draw [dashed] (axis cs:292.5,0) -- (axis cs:292.5,12);
% braces, as decorations
\draw[decorate,dashed] (axis cs:237.5,14) -- (axis cs:252.5,14);
\draw[decorate,dashed] (axis cs:247.5,12) -- (axis cs:292.5,12);
% Подписи для групп
\node at (axis cs:245,15) [txt] {Гармоническая подгруппа};
\node at (axis cs:270,13) [txt] {Интергармоническая группа};
\end{axis}
\end{tikzpicture}
\end{document}