首先,这不是科学,这只是在摆弄 pgfplots。我的计算可能完全错误。
我正在绘制图表。x 轴表示天数。我想在图表中突出显示星期日(2020 年 3 月 15 日、21 日、29 日)。也许通过将日期打印为\textbf{}
,更好的方法是在网格中获得一条突出显示的线。随便吧。
我将在接下来的几周继续绘制这个图表,因此每周日都能自动突出显示就更好了。
妇女权利委员会:
\documentclass[paper=landscape, DIV=20, ngerman]{scrarticle}
\usepackage[T1]{fontenc}
\usepackage{libertine, babel}
\usepackage[libertine]{newtxmath}
% \usepackage{translator}%% Fehlermeldung
\usepackage{pgfplots, pgfplotstable, array, booktabs, mathastext, xcolor,
colortbl, pgfcalendar}
\pgfplotsset{compat=1.17}
\usepgfplotslibrary{dateplot}
\pagestyle{empty}
\begin{filecontents}{Verdoppelungszeit.csv}
Tag BRD RhPf
2020-03-10 654 18
2020-03-11 1089 25
2020-03-12 1892 52
2020-03-13 2576 102
2020-03-14 3421 121
2020-03-15 4195 168
2020-03-16 5433 325
2020-03-17 7156 442
2020-03-18 8198 474
2020-03-19 10999 637
2020-03-20 13957 801
2020-03-21 16662 938
2020-03-22 18610 1053
2020-03-23 22672 1177
2020-03-24 27436 1370
2020-03-25 31554 1591
2020-03-26 36508 1816
2020-03-27 42288 1971
2020-03-28 48582 2212
2020-03-29 52547 2396
2020-03-30 57298 2584
2020-03-31 61913 2726
\end{filecontents}
\begin{document}
\pgfplotstableset{% could be used in preamble
create on use/brdoppel/.style=
{create col/expr={ln(2)/(ln((\thisrowno{1}-\prevrowno{1})/\prevrowno{1}+1))}}}
\pgfplotstableset{% could be used in preamble
create on use/rhpfdoppel/.style=
{create col/expr={ln(2)/(ln((\thisrowno{2}-\prevrowno{2})/\prevrowno{2}+1))}}}
\begin{tikzpicture}
\begin{semilogyaxis}[
unbounded coords=discard,
height=16cm,
xlabel=Datum, grid=major,
legend entries= {Fallzahl BRD, Verdopplungszeit in Tagen BRD, Fallzahl Rh.-Pf.,
Verdoppelungszeit Rh.-Pf.},
legend style={%
at={(0.9,0.535)}, anchor=east, draw=none,
},
date coordinates in=x,
xticklabel={\scriptsize\day.\month.},
x tick label style={rotate=45,anchor=north east},
% x filter/.code{%
% \ifdate{weekend}{\color{black!50}}{\color{black}}%
% }
]
\addplot [blue, thick]
table [%
x=Tag, y=BRD, xlabel style={font=\sffamily}]{Verdoppelungszeit.csv};
\addplot+ [blue, mark=*,mark options={fill=white}, thin,
restrict y to domain=0.1:inf]
table [x=Tag, y=brdoppel]{Verdoppelungszeit.csv};
\addplot [red, thick, mark=] table [x=Tag, y=RhPf]{Verdoppelungszeit.csv};
\addplot+ [red, mark=triangle*, thin, restrict y to domain=-1:inf, mark repeat=7]
table [x=Tag, y=rhpfdoppel]{Verdoppelungszeit.csv};
\end{semilogyaxis}
\end{tikzpicture}
\KOMAoptions{paper=portrait}\recalctypearea
\pgfplotstabletypeset[%
use comma,% Komma als Dezimaltrenzeichen
column type=r,
every head row/.style={before row=\toprule,after row=\midrule},
assign column name/.style={
/pgfplots/table/column name={\textbf{#1}}},
columns={Tag,BRD,brdoppel, RhPf, rhpfdoppel},
columns/brdoppel/.style={column name=BRD-Doppel, dec sep align},
columns/rhpfdoppel/.style={column name=Rh.-Pf.-Doppel, dec sep align},
columns/Tag/.style={date type={\weekdayshortname , \day.\month.},},
every nth row={7[-2]}{before row=\rowcolor[gray]{0.9}},
]{Verdoppelungszeit.csv}
\end{document}
正如您在代码中所看到的,x filter
with\ifdate{weekenend}
不起作用,pdflatex 陷入了循环。
顺便说一句,如果我取消注释该行,\usepackage{translator}
我也会出现错误,但不知道原因。
Linux 上的 texlive 2020。