
積み上げ面グラフに関して 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
- 質問はどうやってプロットを拡大縮小します。 コマンド
width
とheight
コマンドを使用して軸を直接拡大縮小すると、フォント サイズは変更されません。 - これは非常によくある質問であり、答えはここたとえば、"通常" フォントのみを変更し、"数式" フォントは変更していません。また、
tick
数式モードでは数字が印刷されるため、デフォルトの数式フォントが使用されることになります。 - ここでは、キーを使用してラベルを「手動で」記述し
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}