A French number is ten digits in five pairs, and the first pair is the zone: 01 is Île-de-France, 02 the north-west, 03 the north-east, 04 the south-east, 05 the south-west. The second pair was, until 1996, the département — 02 98 Finistère, 04 93 Nice, 05 56 Bordeaux — and the numbers assigned then still begin with it. This map draws every département in the codes its numbers carry, coloured by zone.
How to read the map. The colour is the first pair of digits, the zone, and the numeral on each patch is the second pair: dial 04 93 for Nice, 02 98 for Brest, 03 88 for Strasbourg. A département that carries two or three codes shows them all — Gironde is 56/57, the Nord 20/27/28, Alpes-Maritimes 92/93 — and a code that covers two départements, like 02 33 for Manche and Orne, draws them as one patch. Île-de-France is one patch, 01: thirty codes cover its eight départements and none of them means a place any more. Where the numbers of a city begin with a code of their own, as Marseille's do with 04 91 and Lyon's with 04 72 and 04 78, the code is written on the département, which is the smallest thing the boundaries have.
What the digits still mean. Since the plan of 1996 the regulator has assigned numbers to operators, a block at a time, anywhere in a zone: a new number in Brest can begin 02 98 or 02 29 or 02 90, depending on who sells it. The last unit of geography the plan had, the zone de numérotation élémentaire, was abolished at the start of 2023, and the regulator's files that said which commune was in which have been withdrawn. So the map draws what was fixed in 1996 and is still true of most numbers — the codes a département's numbers have begun with since — and lists the codes assigned to operators since then under their zone only. The overseas départements, dialled from the mainland on 05 90 to 05 96 and 02 62 and 02 69, and the two codes a zone set aside for telemarketing in 2023 are in the panel and not on the map.
Sources. Codes and dates: Wikipedia (French), Indicatif téléphonique local en France — every two-digit code with its département(s) and the date it was assigned, from the plan's decisions. Numbering plan: ARCEP, ressources en numérotation téléphonique — the current allocation of blocks to operators, by zone and with no geography below it. Geometry: IGN, Admin Express 2018, départements, as converted to GeoJSON in gregoiredavid/france-geojson; dissolved by code and by zone.