Gráfico de barras agrupadas PGFPlots com barras de erro fornecendo informações adicionais acima, converta ponto em string em vírgula para exibição

Gráfico de barras agrupadas PGFPlots com barras de erro fornecendo informações adicionais acima, converta ponto em string em vírgula para exibição

Como posso obter a vírgula como separador decimal nos eixos superiores (o número acima da grade principal)?

Todas as sugestões para melhorar o gráfico são calorosamente bem-vindas.

requisito básico

  • usando dados .csv com flutuações (longas) e erros
  • mostrando informações em pares agrupados (mesmo corpo de teste com diferentes configurações de fixação)
  • com informações de erro (que às vezes são muito grandes)
  • Não quero mostrar todos os valores de todas as barras, mas sim a média de cada grupo

Eu tentei e consegui isso, com o problema do separador decimal ser um gráfico de média pontual. (Também não quero que apareçam marcas ou qualquer outra coisa, e a etiqueta deve ser impressa em preto)

Eu peguei a configuração básica deManual para Pacote PGFSPLOTScapítulo 8.6 página 551.

coisas que eu tentei

Não quero alterar meu csv (usando ponto e vírgula como separador e usando vírgula para separação decimal). Estou usando sinuitx. Se houver uma opção de aplicar isso às metainformações, pode ser uma chance. Também tentei {} em torno dos dados do meu rótulo no .csv, mas isso não ajudou.

caractere de barra agrupada

Código 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}

O conteúdo de 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

Responder1

Tentei coisas diferentes e cometi vários erros. Os dois seguintes são adicionais à solução importante

  • Não use um arquivo onde apenas índice e meta estejam dentro
  • Não use \pgfplotstabletypesetem tikzpicture,Veja aqui

Uma solução simples para o meu problema é alterar o formato do arquivo paraespaço separadoe é isso. A opção explicit symbolicjá trata do resto para leitura correta do "novo" arquivo .dat...

gráfico de barras com meta rótulos adequados

informação relacionada