%!TEX pdflatex
\documentclass[a4paper,11pt]{article}
\usepackage{listofitems}
\usepackage[table,svgnames]{xcolor}
\usepackage{tikz}
\usepackage{simplekv}
\usepackage{xstring}
\usepackage{xparse}
\defKV[rosevents]{%
GradX=\def\RdVentsUniteX{#1},%
GradY=\def\RdVentsUniteY{#1},%
NbColonnes=\def\RdVentsNbColonnes{#1},%
NbLignes=\def\RdVentsNbLignes{#1},%
Croix=\def\RdVentsCroix{#1},%
Echelle=\def\RdVentsEchelle{#1}
}
\setKVdefault[rosevents]{%
NbColonnes={},%
NbLignes={},%
GradX=1,%
GradY=1,%
AffCroix=true,%
Croix={},%
Echelle=1
}
\newcommand\RoseDesVents[2][]{%options+liste
\useKVdefault[rosevents]%
\setKV[rosevents]{#1}%
\setsepchar[.]{§./}%
\readlist*\ListeCouleursRose{#2}%
\begin{tikzpicture}[scale=\RdVentsEchelle]
%graduations
\foreach \x in {1,2,...,\inteval{\RdVentsNbColonnes-1}} \draw (\x,0) node[below] {$\inteval{\RdVentsUniteX*\x}$} ;
\foreach \y in {1,2,...,\inteval{\RdVentsNbLignes-1}} \draw (0,\y) node[left] {$\inteval{\RdVentsUniteY*\y}$} ;
%cases
\foreach \i in {1,2,...,\RdVentsNbLignes}{%lecture des lignes
\foreach \j in {1,2,...,\RdVentsNbColonnes}{%
\itemtomacro\ListeCouleursRose[\i,\j]\COUL%
\draw[thick,fill=\COUL]({\j-1},{\i-1}) rectangle++ (1,1) ;
}
}
%axes
\draw[thick,red,->] (0,0)--({\RdVentsNbColonnes+0.25},0) node[right] {$x$} ;
\draw[thick,red,->] (0,0)--(0,{\RdVentsNbLignes+0.25}) node[above] {$y$} ;
%croix
\ifboolKV[rosevents]{AffCroix}%
{%
\StrCut{\RdVentsCroix}{/}{\Xcroix}{\Ycroix}%
\draw ({\Xcroix-0.5},{\Ycroix-0.5}) node[font=\Large] {$\times$} ;
}%
{}%
\end{tikzpicture}
}
\begin{document}
\RoseDesVents[GradX=20,GradY=20,NbColonnes=6,NbLignes=5,Croix={3/4}]%
{Pink/Blue/Red/Blue/Gray/White§
Blue/Yellow/orange/Green/DarkGray/Yellow§
Orange/Gray/Red/Yellow/Gray/Green§
Gray/Red/Pink/Green/Orange/Pink§
Green/Orange/Pink/Gray/Orange/White}
\end{document}