2024年10月31日木曜日

衆院選(2024)の結果

参院選(2022)の結果からの続き

三春充希の第50回衆院選情報部によれば,今回の第50回衆議院議員総選挙の比例区では次のような結果が得られている。前49回との絶対得票数を比較したものである。
保守  なし  → 114万  +114万
参政  なし  → 187万  +187万
自民  1991万 → 1458万       -533万
国民  259万    → 616万    +357万
公明  711万  → 596万    -115万
維新  805万  → 509万      -296万
立憲  1149万 → 1155万       +6万
れいわ 221万    → 380万    +159万
共産  416万    → 336万      -80万
社民  101万   → 93万     -8万
みんな 80万   → 2万    -78万
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
合計 5733万 → 5446万  -287万
一方,Perplexityに参院選(2022)の結果のデータを与えて,これと同様のものを生成するよう指示したところ,次の結果(左総議席,右比例区)が得られた。まあまあである。
投票率 55.93%→53.85% (-2.08%)
議席数 総数 465→465 (unchanged) 過半数 233
保守  0 → 3 (+3)    保守  データなし
参政  1 → 3 (+2)    参政  データなし
自民 247 →191 (-56)  自民  26.73% (1,458万票 = 59議席)
公明  32 → 24 (-8)   公明  10.93% (   596万票 = 20議席)
維新  44 → 38 (-6)   維新  9.36%   (   511万票 = 15議席)
国民  7 → 28 (+21)   国民  11.32% (   617万票 = 17議席)
立憲  98 →148 (+50)  立憲  21.20%  (1,156万票 = 44議席)
れいわ 3 → 9 (+6)   れいわ   6.98%  (   381万票 =  9議席)
共産  10 → 8 (-2)     共産    6.16%  (   336万票 =  7議席)
社民  1 → 1 (±0)    社民  データなし
無所属 22 → 12 (-10)

注目すべき点:
1.自民党と公明党の連立与党は過半数を失い、215議席にとどまった。
2.立憲民主党が大幅に議席を増やし、148議席を獲得した。
3.国民民主党も大きく躍進し、7議席から28議席に増加した。
4.れいわ新選組が議席を3倍に増やし、9議席を獲得した。
5.自民党の得票率は前回より低下し、小選挙区での絶対得票率は20.1%と、1996年以降で最低を記録した。
6.女性当選者数は過去最多の73人となり、衆議院議員の16%を占めた。
7.投票率は53.85%で、前回より約2ポイント低下し、戦後3番目に低い水準となった。
絶対得票数では,自公維の減少分-944万票と公共の減少分-195万票から,全体の減少分を除いた-852万票分を,国民が+357万票,れいわが+159万票の計+516万票,保守と参政の計で+301万票と分けあった計算になっている。立憲はわずか6万票増なので,有権者の票が立憲に向かったわけではなく,自民と維新の減少のあおりで小選挙区の当選数が増えたにすぎない


比例区の世代別の投票率を朝日新聞の出口調査のデータから Julia で図示してみた。ヒストグラムの各世代別の領域の高さは人口に比例させている。グレイゾーンは政党に投票しなかったものであり,左右均等に振り分けたが,あわせてほぼ " 1 - 投票率 "となる。

図:衆議院選挙比例区年代・政党別投票率

また,小選挙区における絶対得票数は次のようなものである(Wikipediaから)。
保守           →   16万( 0.3%) + 16万
参政           →  136万( 2.5%) +136万
自民  2763万(48.1%)  → 2087万(38.5%)  - 676万
公明    87万( 1.5$)   →   73万( 1.4%)   - 14万
維新   480万( 8.4%) →  605万(11.2%) +125万
国民   125万( 2.2%) →  235万( 4.3%) +110万
立憲  1722万(30.0%)  → 1574万(29.0%)  -148万
れいわ   25万( 0.4%) →   43万(  0.8%)  + 18万
共産   263万( 4.6%) →  370万( 6.8%) +107万
社民    31万( 0.6%) →   28万( 0.5%)   -  3万
もちろん,擁立候補者数に依存するのだけれど,立憲はここでも票を減らしている。

[1]第49回衆議院議員総選挙全国意識調査(公益財団法人 明るい選挙推進協会)


using CairoMakie

# データの準備
# populations = [93, 457, 608, 874, 1102, 1038, 1168, 595]
populations = [219, 1277, 1317, 1637, 1828, 1484, 1608, 1290]
total_population = sum(populations)

support_rates = [
    [0.294, 0.008, 0.017, 0.110, 0.025, 0.034, 0.080, 0.072, 0.038, 0.021, 0.008, 0.294],  # 10代
    [0.321, 0.007, 0.018, 0.072, 0.021, 0.036, 0.093, 0.054, 0.036, 0.018, 0.004, 0.321],  # 20代
    [0.272, 0.009, 0.023, 0.097, 0.028, 0.055, 0.097, 0.069, 0.051, 0.023, 0.005, 0.272],  # 30代
    [0.236, 0.011, 0.027, 0.128, 0.037, 0.064, 0.075, 0.096, 0.064, 0.021, 0.005, 0.236],  # 40代
    [0.205, 0.018, 0.030, 0.151, 0.042, 0.060, 0.060, 0.133, 0.060, 0.030, 0.006, 0.205],  # 50代
    [0.161, 0.014, 0.028, 0.182, 0.070, 0.056, 0.049, 0.182, 0.042, 0.042, 0.014, 0.161],  # 60代
    [0.148, 0.015, 0.015, 0.218, 0.065, 0.051, 0.036, 0.211, 0.022, 0.058, 0.015, 0.148],  # 70代
    [0.285, 0.005, 0.005, 0.171, 0.042, 0.028, 0.014, 0.115, 0.005, 0.037, 0.009, 0.285]   # 80代
]

colors = ["#AAAAAA", "#777777", "#FC9F05", "#FF0000", "#F9EA09", "#00FF00", "#2242D2", "#06EAFC", "#FA69FF", "#DD0000",  "#777777", "#AAAAAA"]
age_labels = ["18-", "20-", "30-", "40-", "50-", "60-", "70-", "80-"]

# プロットの作成
fig = Figure(size=(800, 600))
ax = Axis(fig[1, 1], ylabel="人口割合", xlabel="投票率")

current_y = 0.0
for (i, pop) in enumerate(populations)
    segment_height = pop / total_population
    rates = support_rates[i]
    
    current_x = 0.0
    for (j, rate) in enumerate(rates)
        poly!(ax, [current_x, current_x+rate, current_x+rate, current_x], 
              [current_y, current_y, current_y+segment_height, current_y+segment_height], 
              color=colors[j])
        current_x += rate
    end
    
    # 年代ラベルを追加
    text!(ax, -0.05, current_y + segment_height/2, text=age_labels[i], 
          align=(:right, :center), fontsize=14)
    
    current_y += segment_height
end

# 軸の設定
ax.yticks = (collect(0:0.2:1), ["0%", "20%", "40%", "60%", "80%", "100%"])
ax.xticks = (collect(0:0.2:1), ["0%", "20%", "40%", "60%", "80%", "100%"])

# 凡例の追加
elements = [PolyElement(polycolor = c) for c in colors]
Legend(fig[1, 2], elements, ["--", "保守", "参政", "自民", "公明", "維新", "国民","立憲", "れいわ", "共産", "社民", "--"], 
       "政党", tellheight=false, tellwidth=true)

# タイトルの追加
Label(fig[0, :], "年代別投票率", fontsize = 24)

# グラフの表示
display(fig)


0 件のコメント:

コメントを投稿