le front républicain en 2024

circonscriptions où le/la candidate a été élu·es dès le premier tour

les circonscriptions où le front républicain est en tête

Elles sont . C'est une bonne base. Elles peuvent certaintement basculer d'Ensemble vers le Nouveau Front Populaire, ou l'inverse. C'est important mais on peut mettre ce détail de côté pour l'instant.

circonscriptions où le RN et ses alliés est en tête

circonscriptions perdues d'avance

On considère que les circonscriptions fonts plus que le second et le troisième sont perdues d'avance. Il y en a en tout.

circonscriptions où le RN peut être vaincu

RN < second et troisième

Imaginons un scénario où tous les partis politiques ainsi que la population joue le jeu d'un front républicain fort. Toutes les personnes qui auraient voter pour le candidat en troisième position vote pour le second quelque soit le camp. Le but est simple minimiser le nombre de sièges du RN et de ses alliés à l'Assemblée nationale.

version interactive

Une simulation relativement claquée de ce qui se passerait pour les circonscriptions où le RN est en tête et qu'un certain pourcentage (pct_report) des votes de la personne en troisième position se reportait sur la seconde.

composition finale

effet sur les circonscriptions où l'extrême-droite est en tête

évolution du nombre de sièges en fonction des reports de voix

données

WIP

const familles = [ 'UG', 'ENS', 'LR', 'UXD', 'RN' ]
const ED = ['RN', 'UXD']
const resultats_t1 = (
	d3
	.rollups(
		(await lg.fetch_votes(2024, 1)).objects(),
		d => d3.sort(d, d=>d.NbVoix).reverse(),
		d => d.CodCirc2
	)
)
const t1_direct = (
	resultats_t1
	.filter(d => d[1].map(c => c.Elu).includes("OUI"))
)
const t1_rnpos1 = (
	qualif_t1
	.filter(d => ED.includes(d3.greatest(d[1], d=> d.NbVoix).CodNuaCand))
)
const t1_rnpos1_not =  (
	qualif_t1
	.filter(d => !ED.includes(d3.greatest(d[1], d=> d.NbVoix).CodNuaCand))
)

fonctions

WIP

function to_data(candidats){
	return d3.sort(candidats,d=>d.NbVoix).reverse().map(d => ({
		party: d.CodNuaCand,
		voices: d.NbVoix,
		color: lg.nuances_colors[d.CodNuaCand]
	}))
}
function cg_list(l, pos=0, disp=undefined){
	const data = (d) => (opts.includes('circogramme'))? to_data(d[1]).slice(0,(disp)?disp:l.length) : [to_data(d[1])[pos]]

	return (
		d3
		.sort(l, d=> d3.max(d[1], d=>d.NbVoix)).reverse()
		.map(d=> html`<a href="/legislatives/circonscription#${d[0]}">${circogramme(data(d), 24, 24).node()}</a> `)
	)
}