Gráfico de barras agrupadas de PGFPlots con barras de error que brindan información adicional arriba; convierta el punto en una cadena entre comas para su visualización

Gráfico de barras agrupadas de PGFPlots con barras de error que brindan información adicional arriba; convierta el punto en una cadena entre comas para su visualización

¿Cómo puedo obtener una coma como separador decimal en mis ejes superiores (el número sobre la cuadrícula principal)?

Todas las sugerencias para mejorar el gráfico son bienvenidas.

requisito básico

  • usando datos .csv con flotadores (largos) y errores
  • mostrando información en pares agrupados (mismo cuerpo de prueba con diferentes configuraciones de sujeción)
  • con información de error (que a veces son bastante grandes)
  • No quiero mostrar todos los valores de cada barra, sino la media de cada grupo.

Lo intenté y obtuve esto, con el problema de que el separador decimal es un gráfico de media puntual. (Además, no quiero que aparezcan marcas ni ninguna otra cosa, y la etiqueta debe estar impresa en negro)

Obtuve la configuración básica deManual del paquete PGFSPLOTScapítulo 8.6 página 551.

cosas que probé

No quiero cambiar mi csv (usando punto y coma como separador y usando la coma para separación decimal) estoy usando sinuitx. Si hay una opción para aplicar esto a la metainformación, podría ser una oportunidad. También probé {} con los datos de mi etiqueta en el .csv, pero eso no ayudó.

carácter 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}

El contenido de datos.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

Respuesta1

Probé diferentes cosas y, por lo tanto, cometí múltiples errores. Los siguientes dos son además de la solución importante.

  • No utilice un archivo donde solo haya índice y meta dentro
  • No utilizar \pgfplotstabletypesetentikzpicture ,mira aquí

Una solución funcional simple para mi problema es cambiar el formato del archivo aespacio separadoy eso es. La opción explicit symbolicya se encarga del resto para leer correctamente el "nuevo" archivo .dat...

diagrama de barras con metaetiquetas adecuadas

información relacionada