diff options
Diffstat (limited to 'macros/latex/contrib/proflycee')
-rw-r--r-- | macros/latex/contrib/proflycee/README.md | 13 | ||||
-rw-r--r-- | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf | bin | 1418840 -> 1444492 bytes | |||
-rw-r--r-- | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex | 272 | ||||
-rw-r--r-- | macros/latex/contrib/proflycee/tex/ProfLycee.sty | 3 | ||||
-rw-r--r-- | macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex | 293 |
5 files changed, 575 insertions, 6 deletions
diff --git a/macros/latex/contrib/proflycee/README.md b/macros/latex/contrib/proflycee/README.md index bdafe102e4..11502d6f77 100644 --- a/macros/latex/contrib/proflycee/README.md +++ b/macros/latex/contrib/proflycee/README.md @@ -1,10 +1,13 @@ You are a french mathematics teacher ? proflycee may be a useful package to daily use of LaTeX. ------------------------------------------------------------------------------ + +---------------- + Vous êtes un enseignant de mathématiques en lycée ? proflycee est un package qui pourra vous aider à utiliser LaTeX au quotidien. ------------------------------------------------------------------------------ -Author.....: Cédric Pierquet -email......: cpierquet@outlook.fr -Licence....: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt +---------------- + +Author : Cédric Pierquet +email : cpierquet@outlook.fr +Licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf Binary files differindex c35a881442..21a32e22f8 100644 --- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf +++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex new file mode 100644 index 0000000000..0dfda9ed87 --- /dev/null +++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex @@ -0,0 +1,272 @@ +% !TeX TXS-program:compile = txs:///arara +% arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} +% arara: pythontex: {rerun: always} +% arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} +% arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)') + +\documentclass[a4paper,french,11pt]{article} +\def\PLversion{3.01a} +\def\PLdate{6 décembre 2023} +\usepackage{amsfonts} +\usepackage{ProfLycee} +\useproflyclib{piton,minted,pythontex,ecritures} +\usepackage[math-style=french]{fourier-otf} +\usepackage{mathrsfs}%pour mathscr +\usepackage{awesomebox} +\usepackage[lua]{tkz-euclide} +\usepackage{tkz-tab} +\tikzstyle{every picture}+=[remember picture] +\usetikzlibrary{hobby} +\usepackage[group-minimum-digits=4]{siunitx} +\sisetup{locale=FR} +\usepackage{enumitem} +\usepackage{fancyvrb} +\usepackage{fancyhdr} +\usepackage{tabularray} +\usepackage{multicol} +\DeclareMathSymbol{;}\mathbin{operators}{'73} %espacement avec ; +%fancy +\fancyhf{} +\renewcommand{\headrulewidth}{0pt} +\lfoot{\sffamily \small [ProfLycee]} +\cfoot{\sffamily \small - \thepage{} -} +\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}} + +\usepackage{graphics} +\usepackage{hologo} +\providecommand\tikzlogo{Ti\textit{k}Z} +\providecommand\TeXLive{\TeX{}Live\xspace} +\providecommand\PSTricks{\textsf{PSTricks}\xspace} +\let\pstricks\PSTricks +\let\TikZ\tikzlogo +\newcommand\TableauDocumentation{% + \begin{tblr}{width=\linewidth,colspec={X[c]X[c]X[c]X[c]X[c]X[c]},cells={font=\huge\sffamily}} + {\LaTeX} & {\hologo{pdfLaTeX}} & {\hologo{LuaLaTeX}} & {\TikZ} & {\TeXLive} & {\hologo{MiKTeX}} \\ + \end{tblr} +} +\usepackage{simplekv} +\usepackage{menukeys} +\let\tab\relax +\usepackage{tabto} +\usepackage{pgf,pgfplots} +\pgfplotsset{compat=newest,xlabel near ticks,ylabel near ticks} +\usepackage{listofitems} +\usepackage{xintexpr} +\usepackage{codehigh} +\usepackage{scontents} +\usepackage{hyperref} +\urlstyle{same} +\hypersetup{pdfborder=0 0 0} +\usepackage{geometry} +\geometry{margin=1.5cm} +\usepackage{babel} +\usepackage{newverbs} + +\input{ProfLycee-doc-macropreamb.tex} + +\input{ProfLycee-doc-pagegarde.tex} + +\newpage + +\phantomsection +\hypertarget{matoc}{} + +\tableofcontents + +\newpage + +\phantom{t}\par\vfill\par +\begin{PART} + \begin{center} + \Huge\MakeUppercase{Introduction} + \end{center} +\end{PART} +\par\vfill\par\phantom{t} + +\newpage + +\input{ProfLycee-doc-introduction.tex} + +\newpage + +\phantom{t}\par\vfill\par +\begin{PART} + \begin{center} + \Huge\MakeUppercase{Liste des commandes} + \end{center} +\end{PART} +\par\vfill\par\phantom{t} + +\newpage + +\input{ProfLycee-doc-listecommandes.tex} + +\newpage + +\phantom{t}\par\vfill\par +\begin{PART} + \begin{center} + \Huge\MakeUppercase{Écritures mathématiques} + \end{center} +\end{PART} +\par\vfill\par\phantom{t} + +\newpage + +\input{ProfLycee-doc-ecritures.tex} + +\newpage + +\phantom{t}\par\vfill\par +\begin{PART} + \begin{center} + \Huge\MakeUppercase{Outils pour l'analyse} + \end{center} +\end{PART} +\par\vfill\par\phantom{t} + +\newpage + +\input{ProfLycee-doc-outilsanalyse.tex} + +\newpage + +\phantom{t}\par\vfill\par +\begin{PART} + \begin{center} + \Huge\MakeUppercase{Outils graphiques} + \end{center} +\end{PART} +\par\vfill\par\phantom{t} + +\newpage + +\input{ProfLycee-doc-outilsgraphiques.tex} + +\newpage + +\phantom{t}\par\vfill\par +\begin{PART} + \begin{center} + \Huge\MakeUppercase{Présentation de codes} + \end{center} +\end{PART} +\par\vfill\par\phantom{t} + +\newpage + +\input{ProfLycee-doc-prescodes.tex} + +\pagebreak + +\phantom{t}\par\vfill\par +\begin{PART} + \begin{center} + \Huge\MakeUppercase{Outils pour la géométrie} + \end{center} +\end{PART} +\par\vfill\par\phantom{t} + +\newpage + +\input{ProfLycee-doc-outilsgeom.tex} + +\pagebreak + +\phantom{t}\par\vfill\par +\begin{PART} + \begin{center} + \Huge\MakeUppercase{Outils pour la géométrie analytique} + \end{center} +\end{PART} +\par\vfill\par\phantom{t} + +\newpage + +\input{ProfLycee-doc-outilsgeomanalyt.tex} + +\newpage + +\phantom{t}\par\vfill\par +\begin{PART} + \begin{center} + \Huge\MakeUppercase{Outils pour les statistiques} + \end{center} +\end{PART} +\par\vfill\par\phantom{t} + +\newpage + +\input{ProfLycee-doc-stats.tex} + +\newpage + +\phantom{t}\par\vfill\par +\begin{PART} + \begin{center} + \Huge\MakeUppercase{Outils pour les probabilités} + \end{center} +\end{PART} +\par\vfill\par\phantom{t} + +\newpage + +\input{ProfLycee-doc-probas.tex} + +\newpage + +\phantom{t}\par\vfill\par +\begin{PART} + \begin{center} + \Huge\MakeUppercase{Outils pour l'arithmétique} + \end{center} +\end{PART} +\par\vfill\par\phantom{t} + +\newpage + +\input{ProfLycee-doc-arithm.tex} + +\newpage + +\phantom{t}\par\vfill\par +\begin{PART} + \begin{center} + \Huge\MakeUppercase{Écritures, simplifications} + \end{center} +\end{PART} +\par\vfill\par\phantom{t} + +\newpage + +\input{ProfLycee-doc-simplif.tex} + +\pagebreak + +\phantom{t}\par\vfill\par +\begin{PART} + \begin{center} + \Huge\MakeUppercase{Jeux et récréations} + \end{center} +\end{PART} +\par\vfill\par\phantom{t} + +\newpage + +\input{ProfLycee-doc-jeuxrecreat.tex} + +\newpage + +\phantom{t}\par\vfill\par +\begin{PART} + \begin{center} + \Huge\MakeUppercase{Historique} + \end{center} +\end{PART} +\par\vfill\par\phantom{t} + +\newpage + +\input{ProfLycee-doc-historique.tex} + +\end{document}
\ No newline at end of file diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty index 1a9535be02..6d2d836957 100644 --- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty +++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty @@ -3,7 +3,8 @@ % or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ProfLycee}[2023/11/30 3.00g Aide pour l'utilisation de LaTeX en lycee] +\ProvidesPackage{ProfLycee}[2023/12/06 3.01a Aide pour l'utilisation de LaTeX en lycee] +% 3.01a Ajout des courbes ECC/FCC + paramètres par interpolation % 3.00g Amélioration de la marge Gauche dans le PseudoCode % 3.00f Conversion d'une écriture décimale périodique en fraction (avec rédaction éventuelle) % 3.00e Ajout des 'machines à transformer' + Correction d'un nom de commande (cc ProfCollege ^^) diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex index eafa4c5909..335b524ec2 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex @@ -2,6 +2,7 @@ % Copyright 2023 Cédric Pierquet % Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt +%3.01a Courbe ECC %2.6.8 Grille histogrammes non réguliers %2.6.7 Histogrammes @@ -482,4 +483,296 @@ {}% } +%%----Courbe ECC +%\usetikzlibrary{intersections} + +% \newcommand\recuptikzxy[3]{% + % \tikz@scan@one@point\pgfutil@firstofone#1\relax + % \edef#2{\the\pgf@x}% + % \edef#3{\the\pgf@y}% +% } + +\defKV[courbeECC]{% + Largeur=\def\ecc@larg@graph{#1},% + Hauteur=\def\ecc@haut@graph{#1},% + PasX=\def\ecc@grille@x{#1},% + PasY=\def\ecc@grille@y{#1},% + Couleur=\def\ecc@coul@graph{#1},% + CouleursParams=\def\ecc@coul@params{#1},% + GraduationsX=\def\ecc@gradx@graph{#1},% + GraduationsY=\def\ecc@grady@graph{#1},% + PoliceAxes=\def\ecc@font@axes{#1},% + ElargirAxes=\def\ecc@elarg@axes{#1} +} + +\setKVdefault[courbeECC]{% + Largeur=15,% + Hauteur=10,% + PasX=50,% + PasY=50,% + Couleur=blue,% + AffParams=true,% + CouleursParams={CouleurVertForet/red},% + GraduationsX={\DonneesXmin},% + GraduationsY={0},% + PoliceAxes=\normalsize\normalfont,% + ElargirOx=true,% + ElargirOy=true,% + ElargirAxes=3mm +} + +\tikzset{traitsparamecc/.style={line width=1pt,densely dashed}} +\tikzset{courbeecc/.style={line width=1pt}} +\tikzset{gradsecc/.style={thick}} +\tikzset{axesecc/.style={gradsecc,->,>=latex}} + +\NewDocumentCommand\CourbeECCStylesDefaut{ }{% + \tikzset{traitsparamecc/.style={line width=1pt,densely dashed}} + \tikzset{courbeecc/.style={line width=1pt}} + \tikzset{gradsecc/.style={thick}} + \tikzset{axesecc/.style={gradsecc,->,>=latex}} +} + +\NewDocumentCommand\CourbeECC{ O{} m m }{% + \restoreKV[courbeECC]% + \setKV[courbeECC]{#1}% + \IfSubStr{\ecc@coul@params}{/}% + {% + \StrCut{\ecc@coul@params}{/}{\ecc@coul@quart}{\ecc@coul@med}% + }% + {% + \def\ecc@coul@quart{\ecc@coul@params}\def\ecc@coul@med{\ecc@coul@params}% + }% + \readlist*\DataClass{#2}% + \readlist*\DataEff{#3}% + \xdef\DonneesECC{0}% + \xintFor* ##1 in {\xintSeq{1}{\DataEfflen}}\do{% + \xdef\DonneesTmp{0} + \xintFor* ##2 in {\xintSeq{1}{##1}}\do{% + \xdef\DonneesTmp{\xintfloateval{\DonneesTmp+\DataEff[##2]}}% + }% + \xdef\DonneesECC{\DonneesECC,\DonneesTmp}% + }% + \readlist*\DataECC\DonneesECC% + \itemtomacro\DataClass[1]\DonneesXmin% + \itemtomacro\DataClass[-1]\DonneesXmax% + \itemtomacro\DataECC[-1]\DonneesEffMax% + \xdef\UniteGraphiqueX{\xintfloateval{(\ecc@larg@graph)/(\DonneesXmax-\DonneesXmin)}}% + \xdef\UniteGraphiqueY{\xintfloateval{(\ecc@haut@graph)/(\DonneesEffMax)}}% + \xdef\DonneesListeECC{(\DataClass[1],\DataECC[1])}% + \xintFor* ##1 in {\xintSeq{2}{\DataECClen}}\do{% + \xdef\DonneesListeECC{\DonneesListeECC--(\DataClass[##1],\DataECC[##1])}% + }% + %paramètres par interpolation + \xintFor* ##1 in {\xintSeq{1}{\DataEfflen}}\do{% + \xdef\isuiv{\xinteval{##1+1}}% + \xintifboolexpr{\DataECC[##1] < (0.25*\DonneesEffMax) 'and' \DataECC[\isuiv] >= (0.25*\DonneesEffMax)}% + {% + \xdef\pentetmpECC{(\DataECC[\isuiv]-\DataECC[##1])/(\DataClass[\isuiv]-\DataClass[##1])}%OK + \xdef\ValPremQuartile{\xintfloateval{(0.25*\DonneesEffMax+\pentetmpECC*\DataClass[##1]-\DataECC[##1])/(\pentetmpECC)}}% + } + {}% + \xintifboolexpr{\DataECC[##1] < (0.50*\DonneesEffMax) 'and' \DataECC[\isuiv] >= (0.50*\DonneesEffMax)}% + {% + \xdef\pentetmpECC{(\DataECC[\isuiv]-\DataECC[##1])/(\DataClass[\isuiv]-\DataClass[##1])}%OK + \xdef\ValMed{\xintfloateval{(0.50*\DonneesEffMax+\pentetmpECC*\DataClass[##1]-\DataECC[##1])/(\pentetmpECC)}}% + } + {}% + \xintifboolexpr{\DataECC[##1] < (0.75*\DonneesEffMax) 'and' \DataECC[\isuiv] >= (0.75*\DonneesEffMax)}% + {% + \xdef\pentetmpECC{(\DataECC[\isuiv]-\DataECC[##1])/(\DataClass[\isuiv]-\DataClass[##1])}%OK + \xdef\ValTroisQuartile{\xintfloateval{(0.75*\DonneesEffMax+\pentetmpECC*\DataClass[##1]-\DataECC[##1])/(\pentetmpECC)}}% + } + {}% + }% + %graphique + \begin{tikzpicture}[x=\UniteGraphiqueX cm,y=\UniteGraphiqueY cm] + \draw[xstep=\ecc@grille@x,ystep=\ecc@grille@y,thin,lightgray] (\DonneesXmin,0) grid (\DonneesXmax,\DonneesEffMax) ; + %modif axes avec pgffor :-( + \foreach \valx in \ecc@gradx@graph {% + \draw[gradsecc] (\valx,3pt)--++(0,-6pt) node[below,font=\ecc@font@axes] {\num{\valx}} ; + } + \foreach \valy in \ecc@grady@graph {% + \draw[gradsecc] ($({\DonneesXmin},\valy)+(3pt,0)$)--++(-6pt,0) node[left,font=\ecc@font@axes] {\num{\valy}} ; + } + \ifboolKV[courbeECC]{ElargirOx}% + {% + \draw[axesecc] (\DonneesXmin,0)--($(\DonneesXmax,0)+(\ecc@elarg@axes,0)$) ; + }% + {% + \draw[axesecc] (\DonneesXmin,0)--(\DonneesXmax,0) ; + }% + \ifboolKV[courbeECC]{ElargirOy}% + {% + \draw[axesecc] (\DonneesXmin,0)--($(\DonneesXmin,\DonneesEffMax)+(0,\ecc@elarg@axes)$) ; + }% + {% + \draw[axesecc] (\DonneesXmin,0)--(\DonneesXmin,\DonneesEffMax) ; + }% + \draw[courbeecc,\ecc@coul@graph] \DonneesListeECC ; + \xintFor* ##1 in {\xintSeq{1}{\DataECClen}}\do{% + \filldraw[\ecc@coul@graph] (\DataClass[##1],\DataECC[##1]) circle[radius=2pt] ; + }% + \ifboolKV[courbeECC]{AffParams}% + {% + \draw[traitsparamecc,\ecc@coul@quart] (\DonneesXmin,{0.25*\DonneesEffMax})--++({\DonneesXmax-\DonneesXmin},0); + \draw[traitsparamecc,\ecc@coul@med] (\DonneesXmin,{0.50*\DonneesEffMax})--++({\DonneesXmax-\DonneesXmin},0); + \draw[traitsparamecc,\ecc@coul@quart] (\DonneesXmin,{0.75*\DonneesEffMax})--++({\DonneesXmax-\DonneesXmin},0); + \draw[traitsparamecc,\ecc@coul@quart] (\ValPremQuartile,{0.25*\DonneesEffMax})--(\ValPremQuartile,0) ; \draw[\ecc@coul@quart,thick,fill=white] (\ValPremQuartile,{0.25*\DonneesEffMax}) circle[radius=2pt] ; + \draw[traitsparamecc,\ecc@coul@quart] (\ValTroisQuartile,{0.75*\DonneesEffMax})--(\ValTroisQuartile,0) ; \draw[\ecc@coul@quart,thick,fill=white] (\ValTroisQuartile,{0.75*\DonneesEffMax}) circle[radius=2pt] ; + \draw[traitsparamecc,\ecc@coul@med] (\ValMed,{0.5*\DonneesEffMax})--(\ValMed,0) ; \draw[\ecc@coul@med,thick,fill=white] (\ValMed,{0.5*\DonneesEffMax}) circle[radius=2pt] ; + }% + {}% + \end{tikzpicture}% + \CourbeECCStylesDefaut% +} + +\NewDocumentEnvironment{EnvCourbeECC}{ O{} m m }% +{% + \restoreKV[courbeECC]% + \setKV[courbeECC]{#1}% + \IfSubStr{\ecc@coul@params}{/}% + {% + \StrCut{\ecc@coul@params}{/}{\ecc@coul@quart}{\ecc@coul@med}% + }% + {% + \def\ecc@coul@quart{\ecc@coul@params}% + \def\ecc@coul@med{\ecc@coul@params}% + }% + \readlist*\DataClass{#2}% + \readlist*\DataEff{#3}% + \xdef\DonneesECC{0}% + \xintFor* ##1 in {\xintSeq{1}{\DataEfflen}}\do{% + \xdef\DonneesTmp{0} + \xintFor* ##2 in {\xintSeq{1}{##1}}\do{% + \xdef\DonneesTmp{\xintfloateval{\DonneesTmp+\DataEff[##2]}}% + }% + \xdef\DonneesECC{\DonneesECC,\DonneesTmp}% + }% + \readlist*\DataECC\DonneesECC% + \itemtomacro\DataClass[1]\DonneesXmin% + \itemtomacro\DataClass[-1]\DonneesXmax% + \itemtomacro\DataECC[-1]\DonneesEffMax% + \xdef\UniteGraphiqueX{\xintfloateval{(\ecc@larg@graph)/(\DonneesXmax-\DonneesXmin)}}% + \xdef\UniteGraphiqueY{\xintfloateval{(\ecc@haut@graph)/(\DonneesEffMax)}}% + \xdef\DonneesListeECC{(\DataClass[1],\DataECC[1])}% + \xintFor* ##1 in {\xintSeq{2}{\DataECClen}}\do{% + \xdef\DonneesListeECC{\DonneesListeECC--(\DataClass[##1],\DataECC[##1])}% + }% + %paramètres par interpolation + \xintFor* ##1 in {\xintSeq{1}{\DataEfflen}}\do{% + \xdef\isuiv{\xinteval{##1+1}}% + \xintifboolexpr{\DataECC[##1] < (0.25*\DonneesEffMax) 'and' \DataECC[\isuiv] >= (0.25*\DonneesEffMax)}% + {% + \xdef\pentetmpECC{(\DataECC[\isuiv]-\DataECC[##1])/(\DataClass[\isuiv]-\DataClass[##1])}%OK + \xdef\ValPremQuartile{\xintfloateval{(0.25*\DonneesEffMax+\pentetmpECC*\DataClass[##1]-\DataECC[##1])/(\pentetmpECC)}}% + } + {}% + \xintifboolexpr{\DataECC[##1] < (0.50*\DonneesEffMax) 'and' \DataECC[\isuiv] >= (0.50*\DonneesEffMax)}% + {% + \xdef\pentetmpECC{(\DataECC[\isuiv]-\DataECC[##1])/(\DataClass[\isuiv]-\DataClass[##1])}%OK + \xdef\ValMed{\xintfloateval{(0.50*\DonneesEffMax+\pentetmpECC*\DataClass[##1]-\DataECC[##1])/(\pentetmpECC)}}% + } + {}% + \xintifboolexpr{\DataECC[##1] < (0.75*\DonneesEffMax) 'and' \DataECC[\isuiv] >= (0.75*\DonneesEffMax)}% + {% + \xdef\pentetmpECC{(\DataECC[\isuiv]-\DataECC[##1])/(\DataClass[\isuiv]-\DataClass[##1])}%OK + \xdef\ValTroisQuartile{\xintfloateval{(0.75*\DonneesEffMax+\pentetmpECC*\DataClass[##1]-\DataECC[##1])/(\pentetmpECC)}}% + } + {}% + }% + %graphique + \begin{tikzpicture}[x=\UniteGraphiqueX cm,y=\UniteGraphiqueY cm] + \draw[xstep=\ecc@grille@x,ystep=\ecc@grille@y,thin,lightgray] (\DonneesXmin,0) grid (\DonneesXmax,\DonneesEffMax) ; + %modif axes avec pgffor :-( + \foreach \valx in \ecc@gradx@graph {% + \draw[gradsecc] (\valx,3pt)--++(0,-6pt) node[below,font=\ecc@font@axes] {\num{\valx}} ; + } + \foreach \valy in \ecc@grady@graph {% + \draw[gradsecc] ($({\DonneesXmin},\valy)+(3pt,0)$)--++(-6pt,0) node[left,font=\ecc@font@axes] {\num{\valy}} ; + } + \ifboolKV[courbeECC]{ElargirOx}% + {% + \draw[axesecc] (\DonneesXmin,0)--($(\DonneesXmax,0)+(\ecc@elarg@axes,0)$) ; + }% + {% + \draw[axesecc] (\DonneesXmin,0)--(\DonneesXmax,0) ; + }% + \ifboolKV[courbeECC]{ElargirOy}% + {% + \draw[axesecc] (\DonneesXmin,0)--($(\DonneesXmin,\DonneesEffMax)+(0,\ecc@elarg@axes)$) ; + }% + {% + \draw[axesecc] (\DonneesXmin,0)--(\DonneesXmin,\DonneesEffMax) ; + }% + \draw[courbeecc,\ecc@coul@graph] \DonneesListeECC ; + \xintFor* ##1 in {\xintSeq{1}{\DataECClen}}\do{% + \filldraw[\ecc@coul@graph] (\DataClass[##1],\DataECC[##1]) circle[radius=2pt] ; + }% + \ifboolKV[courbeECC]{AffParams}% + {% + \draw[traitsparamecc,\ecc@coul@quart] (\DonneesXmin,{0.25*\DonneesEffMax})--++({\DonneesXmax-\DonneesXmin},0); + \draw[traitsparamecc,\ecc@coul@med] (\DonneesXmin,{0.50*\DonneesEffMax})--++({\DonneesXmax-\DonneesXmin},0); + \draw[traitsparamecc,\ecc@coul@quart] (\DonneesXmin,{0.75*\DonneesEffMax})--++({\DonneesXmax-\DonneesXmin},0); + \draw[traitsparamecc,\ecc@coul@quart] (\ValPremQuartile,{0.25*\DonneesEffMax})--(\ValPremQuartile,0) ; \draw[\ecc@coul@quart,thick,fill=white] (\ValPremQuartile,{0.25*\DonneesEffMax}) circle[radius=2pt] ; + \draw[traitsparamecc,\ecc@coul@quart] (\ValTroisQuartile,{0.75*\DonneesEffMax})--(\ValTroisQuartile,0) ; \draw[\ecc@coul@quart,thick,fill=white] (\ValTroisQuartile,{0.75*\DonneesEffMax}) circle[radius=2pt] ; + \draw[traitsparamecc,\ecc@coul@med] (\ValMed,{0.5*\DonneesEffMax})--(\ValMed,0) ; \draw[\ecc@coul@med,thick,fill=white] (\ValMed,{0.5*\DonneesEffMax}) circle[radius=2pt] ; + }% + {}% + % \path[name intersections={of=CourbeECC and Quartile1,by=Q1}]; + % \path[name intersections={of=CourbeECC and Mediane,by=Q2}]; + % \path[name intersections={of=CourbeECC and Quartile3,by=Q3}]; + % \recuptikzxy{(Q1)}{\xqun}{\yqun}% + % \xdef\ValPremQuartile{\xintfloateval{(0.03515*\fpeval{\xqun})/\UniteGraphiqueX}}% + % \recuptikzxy{(Q2)}{\xmediane}{\ymediane} + % \xdef\ValMed{\xintfloateval{(0.03515*\fpeval{\xmediane})/\UniteGraphiqueX}}% + % \recuptikzxy{(Q3)}{\xqtrois}{\yqtrois}% + % \xdef\ValTroisQuartile{\xintfloateval{(0.03515*\fpeval{\xqtrois})/\UniteGraphiqueX}}% +}% +{% + \end{tikzpicture}% + \CourbeECCStylesDefaut% +} + +%détermination 'simple' des paramètres +\NewDocumentCommand\MedianeQuartilesECC{ m m }{% + %lecture des listes + \readlist*\DataClass{#1}% + \readlist*\DataEff{#2}% + %création etlecture de la liste des ECC + \xdef\DonneesECC{0}% + \xintFor* ##1 in {\xintSeq{1}{\DataEfflen}}\do{% + \xdef\DonneesTmp{0}% + \xintFor* ##2 in {\xintSeq{1}{##1}}\do{% + \xdef\DonneesTmp{\xintfloateval{\DonneesTmp+\DataEff[##2]}}% + }% + \xdef\DonneesECC{\DonneesECC,\DonneesTmp}% + }% + \readlist*\DataECC\DonneesECC% + %effectif total + nb + \itemtomacro\DataECC[-1]\DonneesEffMax% + %détermination de Q1, par balayage + par interpolation + \xintFor* ##1 in {\xintSeq{1}{\DataEfflen}}\do{% + \xdef\isuiv{\xinteval{##1+1}}% + \xintifboolexpr{\DataECC[##1] < (0.25*\DonneesEffMax) 'and' \DataECC[\isuiv] >= (0.25*\DonneesEffMax)}% + {% + \xdef\pentetmpECC{(\DataECC[\isuiv]-\DataECC[##1])/(\DataClass[\isuiv]-\DataClass[##1])}%OK + \xdef\ValPremQuartile{\xintfloateval{(0.25*\DonneesEffMax+\pentetmpECC*\DataClass[##1]-\DataECC[##1])/(\pentetmpECC)}}% + } + {}% + \xintifboolexpr{\DataECC[##1] < (0.50*\DonneesEffMax) 'and' \DataECC[\isuiv] >= (0.50*\DonneesEffMax)}% + {% + \xdef\pentetmpECC{(\DataECC[\isuiv]-\DataECC[##1])/(\DataClass[\isuiv]-\DataClass[##1])}%OK + \xdef\ValMed{\xintfloateval{(0.50*\DonneesEffMax+\pentetmpECC*\DataClass[##1]-\DataECC[##1])/(\pentetmpECC)}}% + } + {}% + \xintifboolexpr{\DataECC[##1] < (0.75*\DonneesEffMax) 'and' \DataECC[\isuiv] >= (0.75*\DonneesEffMax)}% + {% + \xdef\pentetmpECC{(\DataECC[\isuiv]-\DataECC[##1])/(\DataClass[\isuiv]-\DataClass[##1])}%OK + \xdef\ValTroisQuartile{\xintfloateval{(0.75*\DonneesEffMax+\pentetmpECC*\DataClass[##1]-\DataECC[##1])/(\pentetmpECC)}}% + } + {}% + }% +} + \endinput
\ No newline at end of file |