위의 추가 정보를 제공하는 오류 막대가 있는 PGFPlots 그룹화된 막대 차트, 표시를 위해 포인트를 쉼표로 묶은 문자열로 변환

위의 추가 정보를 제공하는 오류 막대가 있는 PGFPlots 그룹화된 막대 차트, 표시를 위해 포인트를 쉼표로 묶은 문자열로 변환

상위 축(주 그리드 위의 숫자)에서 소수 구분 기호로 쉼표를 어떻게 얻을 수 있나요?

그래프를 개선하기 위한 모든 제안을 따뜻하게 환영합니다.

기본 요구 사항

  • (긴) 부동 소수점 및 오류가 있는 .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 파일을 올바르게 읽기 위한 나머지 작업을 이미 처리합니다.

적절한 메타 라벨이 있는 막대 차트

관련 정보