summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pgfplots/libs/tikzlibrarydateplot.code.tex
blob: 161943d6c28a7de4e13d1ca8ffa3359f52eb89cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
%--------------------------------------------
%
% Package pgfplots, library for high-level coordinates.
%
% Copyright 2007/2008 by Christian Feuersänger.
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
% 
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
% GNU General Public License for more details.
% 
% You should have received a copy of the GNU General Public License
% along with this program.  If not, see <http://www.gnu.org/licenses/>.
%
%--------------------------------------------

\pgfutil@usemodule{pgfcalendar}

% Idea: allow
%--------------------------------------------------
% \begin{tikzpicture}
% 	\begin{axis}[
% 		date coordinates in=x,
% 		xticklabel={\day.\month.},
% 	]
% 	\addplot coordinates {
% 		(2008-01-5, 5)
% 		(2008-01-12, 10)
% 		(2008-01-16, 20)
% 	};
% 	\end{axis}
% \end{tikzpicture}
%-------------------------------------------------- 

\def\pgfplots@truncate@to@julian#1.#2\pgfplots@EOI#3{#3=#1\relax}%

\pgfplotsset{
	/pgfplots/date ZERO/.code={%
		\begingroup
		\pgfcalendardatetojulian{#1}\c@pgf@counta
		\edef\pgfmathresult{\the\c@pgf@counta}%
		\pgfmath@smuggleone\pgfmathresult
		\endgroup
		\let\pgfplots@calender@ZEROSHIFT=\pgfmathresult
	},
	date ZERO=2006-01-01,
	/pgfplots/date coordinates in/.style={
		/pgfplots/#1 coord trafo/.code={%
			\begingroup
			\pgfcalendardatetojulian{##1}\c@pgf@counta
			\advance\c@pgf@counta by-\pgfplots@calender@ZEROSHIFT\relax
			\edef\pgfmathresult{\the\c@pgf@counta}%
			\pgfmath@smuggleone\pgfmathresult
			\endgroup
		},
		/pgfplots/#1 coord inv trafo/.code={%
			\begingroup
			\pgfplots@truncate@to@julian##1\pgfplots@EOI{\c@pgf@counta}%
			\advance\c@pgf@counta by\pgfplots@calender@ZEROSHIFT\relax
			\expandafter
			\endgroup
			\expandafter\pgfcalendarjuliantodate\expandafter{\the\c@pgf@counta}\year\month\day
			\edef\pgfmathresult{\year-\month-\day}%
		},
		/pgfplots/#1ticklabel={\tick},%
		/pgfplots/scaled #1 ticks=false,
	},
	/pgfplots/date coordinates in/.value required,
}