
Как мне использовать запятую в качестве десятичного разделителя в верхних осях (число над основной сеткой)?
Все предложения по улучшению графика горячо приветствуются.
основное требование
- использование данных .csv с (длинными) плавающими числами и ошибками
- отображение информации в сгруппированных парах (один и тот же испытательный образец с разными настройками зажима)
- с информацией об ошибках (иногда довольно большой)
- Я не хочу показывать каждое значение каждого столбца, а хочу показать среднее значение каждой группы.
Я попробовал и получил это, с проблемой десятичного разделителя, представляющего собой график среднего значения точки. (Кроме того, я не хочу, чтобы отображались какие-либо отметки или что-либо еще, а метка должна быть напечатана черным цветом)
Я получил базовую настройку отРуководство по пакету PGFSPLOTSглава 8.6 страница 551.
вещи, которые я пробовал
Я не хочу менять свой csv (используя точку с запятой в качестве разделителя и запятую для десятичного разделения). Я использую sinuitx. Если есть возможность применить это к метаинформации, это может быть шансом. Я также пробовал {} вокруг моих данных меток в .csv, но это не помогло.
LaTeX-код:
% !TeX encoding = UTF-8
\documentclass[11pt, border=5pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usepackage{pgfplotstable}
\usepackage{siunitx}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
/pgf/number format/.cd,
use comma,
height = 7cm,
width = 8.5cm,
ymajorgrids,
ylabel={The mighty Force in \si{\newton}},
xlabel={A strong Opponent},
ymin = 0,
ymax= 1.75,
ybar=0pt,
bar width=12pt,
enlarge x limits = 0.3,
nodes near coords,
point meta=explicit symbolic,
scatter/position=absolute,
every node near coord/.style={
at={(\pgfkeysvalueof{/data point/x},1.8)},
anchor=south,
},
bar shift=0pt,
xtick={0,1,2},
xticklabels={metal,wood,paper},
x tick label style={rotate=45,anchor=east},
]
\addplot+[bar shift = -12pt]
plot [error bars/.cd, y dir=both, y explicit]
table [x=ID, y=A, y error=Aun, col sep=comma] {data.csv};
\addplot+[bar shift = +12pt]
plot [error bars/.cd, y dir=both, y explicit]
table [x=ID, y=B, y error=Bun, col sep=comma] {data.csv}; % Läd die Daten aus der CSV Datei
\addplot
plot [error bars/.cd, y dir=both, y explicit]
table [x=ID, y=C, y error=Cun, col sep=comma] {data.csv}; % Läd die Daten aus der CSV Datei
\addplot[only marks]
plot table [x=ID, col sep=comma, meta=label] {data.csv}; % Läd die Daten aus der CSV Datei
\end{axis}
\end{tikzpicture}
\end{document}
Содержимое data.csv:
ID,A,Aun,B,Bun,C,Cun,label
0,0.2,0.05,0.3,0.025,0.1,0.03,0.2
1,0.6,0.05,0.4,0.07,0.8,0.045,0.6
2,1.1,0.1,1.3,0.02,1.5,0.06,1.3
решение1
Я пробовал разные вещи и поэтому сделал много ошибок. Следующие два из них являются дополнением к решению, важному
- Не используйте один файл, содержащий только индекс и метаданные.
- Не использовать
\pgfplotstabletypeset
вtikzpicture
,глянь сюда
Простое рабочее решение моей проблемы — изменить формат файла напространство, разделенноеи все. Опция explicit symbolic
уже обрабатывает все остальное для правильного чтения "нового" .dat файла...