積み上げ面グラフに関するいくつかの問題 - pgfplot

積み上げ面グラフに関するいくつかの問題 - pgfplot

積み上げ面グラフに関して 3 つの問題があります。

1: プレゼンテーションに収まるようにプロットの幅を広げたいのですが、X 方向に拡大縮小するとフォント (ラベル) も拡大縮小されてしまいます。これを回避するにはどうすればよいでしょうか?

ここに画像の説明を入力してください

ここに画像の説明を入力してください

2: チェック ラベルを挿入しようとした方法はすべて\sffamily機能しませんでした。おそらく、適切なスイッチが見つからなかったのでしょう。どうすればよいでしょうか?

3: を変更したいと思いますxlabels。プロットは 2014 から開始する必要がありますが、ラベルは 2015 から開始する必要があります。ラベルのない目盛りには | が必要です。 に何を望んでいるかを図解してみますxlabels

__________________________________________
      |  |   |  |   |  |   |  |   |  |   |
0   2015   2017   2019   2021   2023   2025

これまで試してみたのは以下のとおりです:

\documentclass{standalone}              
\usepackage{pgfplots}
\usepgfplotslibrary{dateplot}
\usepackage[ngerman]{babel}

\pgfplotstableread[col sep=comma,header=true]{
    Year,pid,pack,diff
    2014,4.5,4.5,0
    2015,3.1,4,0.9
    2016,4.5,5.8,1.3
    2017,3.1,4.9,1.8
    2018,2.8,5.2,2.4
    2019,2.3,3.9,1.6
    2020,2,3.9,1.9
    2021,2.1,3.9,1.8
    2022,2.1,5.5,3.4
    2023,0,3.95,3.95
    2024,0,4,4
    2025,0,3.95,3.95
}\table

\pgfplotsset{
    /pgfplots/area cycle list/.style={/pgfplots/cycle list={%
        {red,fill=red,mark=none},
        {blue,fill=blue,mark=none},
    }
},
every axis label = {font=\sffamily},
every tick label/.append style={font=\sffamily},
}


\begin{document}

\begin{tikzpicture}[font=\sffamily]
    \begin{axis}[ 
            every axis label={font=\sffamily},
            legend style = {font=\sffamily},
            label style = {font=\sffamily},
            tick style = {font=\sffamily},
            area style, 
            stack plots=y, 
            enlarge x limits=false, 
            enlarge y limits=upper, 
            x tick label style={/pgf/number format/1000 sep=},      
            ylabel=y, y label style={at={(0.05,1)}},%
            xlabel=t, x label style={at={(1,0.0)}},%
        ]
%\pgftransformxscale{1.5}%scales in xdirection but stretches also the font
        \addplot table [x=Year, y=pid, fill=green] {\table} \closedcycle;
    \end{axis} 
\end{tikzpicture}

\end{document}

答え1

  1. 質問はどうやってプロットを拡大縮小します。 コマンドwidthheightコマンドを使用して軸を直接拡大縮小すると、フォント サイズは変更されません。
  2. これは非常によくある質問であり、答えはここたとえば、"通常" フォントのみを変更し、"数式" フォントは変更していません。また、tick数式モードでは数字が印刷されるため、デフォルトの数式フォントが使用されることになります。
  3. ここでは、キーを使用してラベルを「手動で」記述しxtick、表示する値を指定するだけです。コードでわかるように、「賢い」バージョンを使用することもできます。minor x tick numキーを使用して、マイナー ティックの数を指定できます。

\documentclass{standalone}
\usepackage[ngerman]{babel}
\usepackage[eulergreek]{sansmath}
\usepackage{pgfplots}
    \usepgfplotslibrary{dateplot}
    \pgfplotstableread[col sep=comma,header=true]{
        Year,pid,pack,diff
        2014,4.5,4.5,0
        2015,3.1,4,0.9
        2016,4.5,5.8,1.3
        2017,3.1,4.9,1.8
        2018,2.8,5.2,2.4
        2019,2.3,3.9,1.6
        2020,2,3.9,1.9
        2021,2.1,3.9,1.8
        2022,2.1,5.5,3.4
        2023,0,3.95,3.95
        2024,0,4,4
        2025,0,3.95,3.95
    }\table
    \pgfplotsset{
        /pgfplots/area cycle list/.style={
            /pgfplots/cycle list={%
                {red,fill=red,mark=none},
                {blue,fill=blue,mark=none},
            },
        },
    }
\begin{document}
\begin{tikzpicture}[
    font=\sffamily\sansmath,
]
    \begin{axis}[
        area style,
        stack plots=y,
        enlarge x limits=false,
        enlarge y limits=upper,
        x tick label style={/pgf/number format/1000 sep=},
        ylabel=y, y label style={at={(0.05,1)}},%
        xlabel=t, x label style={at={(1,0.0)}},%
        % -------------------------------------------------
        % set `xtick's
        xtick={2015,2017,...,2025},
        % show in between major xticks 1 minor tick
        minor x tick num=1,
        % change width of the plot
        width=10cm,
        % and maintain (original) height
        % (or also change me, if needed)
        height=\axisdefaultheight,
%        % if the plot should fill the whole page, try the following key
%        scale mode=stretch to fill,
    ]
%\pgftransformxscale{1.5}%scales in xdirection but stretches also the font
        \addplot table [x=Year, y=pid, fill=green] {\table} \closedcycle;
    \end{axis}
\end{tikzpicture}
\end{document}

上記コードの結果を示す画像

関連情報