{"id":61542,"date":"2026-07-31T22:11:15","date_gmt":"2026-07-31T20:11:15","guid":{"rendered":"https:\/\/alertes-meteo.com\/?page_id=61542"},"modified":"2026-07-31T22:14:42","modified_gmt":"2026-07-31T20:14:42","slug":"ecart-a-la-moyenne-des-temperatures-de-juin-a-juillet","status":"publish","type":"page","link":"https:\/\/alertes-meteo.com\/index.php\/climatologie\/ecart-a-la-moyenne-des-temperatures-de-juin-a-juillet\/","title":{"rendered":"\u00c9cart \u00e0 la moyenne des temp\u00e9ratures de juin \u00e0 juillet"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1575px;margin-left: calc(-5% \/ 2 );margin-right: calc(-5% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-blend:overlay;--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:2.375%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:2.375%;--awb-width-medium:100%;--awb-spacing-right-medium:2.375%;--awb-spacing-left-medium:2.375%;--awb-width-small:100%;--awb-spacing-right-small:2.375%;--awb-spacing-left-small:2.375%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><!--\n  GRAPHIQUE INTERACTIF WORDPRESS \u2014 JUIN \u00c0 JUILLET\n  \u00c0 coller dans un bloc \u00ab HTML personnalis\u00e9 \u00bb.\n  Aucune biblioth\u00e8que externe n'est n\u00e9cessaire.\n-->\n\n<div class=\"jj26-widget\" data-jj26-chart>\n  <div class=\"jj26-header\">\n    <h2>\u00c9cart \u00e0 la moyenne des temp\u00e9ratures de juin \u00e0 juillet depuis 1900 (France)<\/h2>\n    <p>Moyenne agr\u00e9g\u00e9e de juin et juillet \u2022 normale de r\u00e9f\u00e9rence 1991-2020<\/p>\n  <\/div>\n\n  <div class=\"jj26-toggle-row\">\n    <button\n      class=\"jj26-toggle\"\n      data-jj26-toggle\n      type=\"button\"\n      role=\"switch\"\n      aria-checked=\"false\"\n    >\n      <span class=\"jj26-toggle-track\" aria-hidden=\"true\">\n        <span class=\"jj26-toggle-dot\"><\/span>\n      <\/span>\n      <span data-jj26-toggle-label>Afficher le diagramme<\/span>\n    <\/button>\n  <\/div>\n\n  <div class=\"jj26-content\" data-jj26-content hidden>\n    <div class=\"jj26-selection\" data-jj26-selection aria-live=\"polite\">\n      Survolez une barre pour afficher l\u2019ann\u00e9e et l\u2019\u00e9cart \u00e0 la normale.\n    <\/div>\n\n    <div class=\"jj26-scroll\" aria-label=\"Graphique d\u00e9filable horizontalement sur mobile\">\n      <div class=\"jj26-stage\">\n        <svg\n          class=\"jj26-svg\"\n          data-jj26-svg\n          viewBox=\"0 0 1240 530\"\n          role=\"img\"\n          aria-labelledby=\"jj26-title jj26-desc\"\n          preserveAspectRatio=\"xMidYMid meet\"\n        >\n          <title id=\"jj26-title\">\u00c9carts \u00e0 la normale des temp\u00e9ratures de juin \u00e0 juillet en France, de 1900 \u00e0 2026<\/title>\n          <desc id=\"jj26-desc\">\n            Histogramme des \u00e9carts \u00e0 la normale 1991-2020. Les valeurs positives sont rouges,\n            les valeurs n\u00e9gatives sont bleues et l'ann\u00e9e 2026 correspond \u00e0 une p\u00e9riode en cours.\n          <\/desc>\n        <\/svg>\n        <div class=\"jj26-tooltip\" data-jj26-tooltip role=\"status\" aria-hidden=\"true\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"jj26-legend\" aria-label=\"L\u00e9gende\">\n      <span><i class=\"jj26-dot jj26-dot-positive\"><\/i> Plus chaud que la normale<\/span>\n      <span><i class=\"jj26-dot jj26-dot-negative\"><\/i> Plus froid que la normale<\/span>\n      <span><i class=\"jj26-dot jj26-dot-current\"><\/i> 2026 : p\u00e9riode en cours<\/span>\n    <\/div>\n\n    <p class=\"jj26-source\">\n      Source : M\u00e9t\u00e9o-France \u2022 graphique \u00e9dit\u00e9 le 31\/07\/2026 \u2022 normale climatologique 1991-2020\n    <\/p>\n  <\/div>\n<\/div>\n\n<style>\n  .jj26-widget,\n  .jj26-widget * {\n    box-sizing: border-box;\n  }\n\n  .jj26-widget {\n    --jj26-red: #e85236;\n    --jj26-red-dark: #c62f22;\n    --jj26-blue: #5c9ae3;\n    --jj26-blue-dark: #2567b3;\n    --jj26-grid: #dfe4ea;\n    --jj26-ink: #17202a;\n    --jj26-muted: #59636e;\n    width: 100%;\n    max-width: 1280px;\n    margin: 24px auto;\n    padding: clamp(18px, 3vw, 32px);\n    overflow: hidden;\n    color: var(--jj26-ink);\n    background: #ffffff;\n    border: 1px solid #e8ebef;\n    border-radius: 18px;\n    box-shadow: 0 12px 34px rgba(23, 32, 42, 0.09);\n    font-family: Arial, Helvetica, sans-serif;\n  }\n\n  .jj26-header h2 {\n    margin: 0;\n    font-size: clamp(21px, 2.6vw, 31px);\n    line-height: 1.18;\n    letter-spacing: -0.02em;\n  }\n\n  .jj26-header p {\n    margin: 8px 0 0;\n    color: var(--jj26-muted);\n    font-size: 15px;\n  }\n\n  .jj26-toggle-row {\n    margin-top: 20px;\n  }\n\n  .jj26-toggle {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    margin: 0;\n    padding: 9px 13px;\n    color: #34404c;\n    background: #f5f7fa;\n    border: 1px solid #dce2e8;\n    border-radius: 999px;\n    font: inherit;\n    font-size: 14px;\n    font-weight: 700;\n    line-height: 1.2;\n    cursor: pointer;\n    transition: color 0.16s ease, background 0.16s ease, border-color 0.16s ease;\n  }\n\n  .jj26-toggle:hover {\n    color: #17202a;\n    background: #eef2f6;\n    border-color: #cbd3dc;\n  }\n\n  .jj26-toggle:focus-visible {\n    outline: 3px solid rgba(37, 103, 179, 0.28);\n    outline-offset: 3px;\n  }\n\n  .jj26-toggle-track {\n    position: relative;\n    display: inline-block;\n    width: 37px;\n    height: 21px;\n    flex: 0 0 auto;\n    background: #aeb7c2;\n    border-radius: 999px;\n    transition: background 0.16s ease;\n  }\n\n  .jj26-toggle-dot {\n    position: absolute;\n    top: 3px;\n    left: 3px;\n    width: 15px;\n    height: 15px;\n    background: #ffffff;\n    border-radius: 50%;\n    box-shadow: 0 1px 4px rgba(23, 32, 42, 0.28);\n    transition: transform 0.16s ease;\n  }\n\n  .jj26-toggle.is-active {\n    color: #174f8d;\n    background: #eff6ff;\n    border-color: #b9d4f2;\n  }\n\n  .jj26-toggle.is-active .jj26-toggle-track {\n    background: var(--jj26-blue-dark);\n  }\n\n  .jj26-toggle.is-active .jj26-toggle-dot {\n    transform: translateX(16px);\n  }\n\n  .jj26-content[hidden] {\n    display: none;\n  }\n\n  .jj26-selection {\n    min-height: 49px;\n    margin: 20px 0 12px;\n    padding: 12px 15px;\n    color: #34404c;\n    background: #f5f7fa;\n    border-left: 4px solid #8995a3;\n    border-radius: 9px;\n    font-size: 15px;\n    line-height: 1.4;\n  }\n\n  .jj26-selection strong {\n    color: var(--jj26-ink);\n  }\n\n  .jj26-selection.is-positive {\n    background: #fff3f0;\n    border-left-color: var(--jj26-red);\n  }\n\n  .jj26-selection.is-negative {\n    background: #eff6ff;\n    border-left-color: var(--jj26-blue);\n  }\n\n  .jj26-selection.is-neutral {\n    background: #f5f7fa;\n    border-left-color: #707b86;\n  }\n\n  .jj26-scroll {\n    width: 100%;\n    overflow-x: auto;\n    overflow-y: hidden;\n    scrollbar-color: #aeb7c2 #edf0f3;\n    scrollbar-width: thin;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .jj26-stage {\n    position: relative;\n    width: 100%;\n    min-width: 1000px;\n  }\n\n  .jj26-svg {\n    display: block;\n    width: 100%;\n    height: auto;\n    overflow: visible;\n    touch-action: pan-x pan-y;\n  }\n\n  .jj26-grid-line {\n    stroke: var(--jj26-grid);\n    stroke-width: 1;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .jj26-zero-line {\n    stroke: #1c2732;\n    stroke-width: 1.7;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .jj26-y-label,\n  .jj26-x-label,\n  .jj26-axis-unit {\n    fill: #68727d;\n    font-family: Arial, Helvetica, sans-serif;\n  }\n\n  .jj26-y-label {\n    font-size: 13px;\n    text-anchor: end;\n    dominant-baseline: middle;\n  }\n\n  .jj26-x-label {\n    font-size: 11px;\n    text-anchor: middle;\n  }\n\n  .jj26-axis-unit {\n    font-size: 12px;\n    font-weight: 700;\n  }\n\n  .jj26-bar {\n    cursor: pointer;\n    outline: none;\n  }\n\n  .jj26-bar-visible {\n    transition: opacity 0.14s ease, filter 0.14s ease;\n    shape-rendering: geometricPrecision;\n  }\n\n  .jj26-bar.is-current .jj26-bar-visible {\n    stroke: var(--jj26-red-dark);\n    stroke-width: 2;\n    stroke-dasharray: 5 3;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .jj26-bar:hover .jj26-bar-visible,\n  .jj26-bar:focus .jj26-bar-visible,\n  .jj26-bar.is-selected .jj26-bar-visible {\n    opacity: 1;\n    filter: brightness(0.82);\n  }\n\n  .jj26-bar:focus-visible .jj26-bar-visible {\n    stroke: #111820;\n    stroke-width: 2;\n    vector-effect: non-scaling-stroke;\n  }\n\n  .jj26-hit-area {\n    fill: transparent;\n    pointer-events: all;\n  }\n\n  .jj26-current-label {\n    fill: var(--jj26-red-dark);\n    font: 700 12px Arial, Helvetica, sans-serif;\n    text-anchor: end;\n  }\n\n  .jj26-tooltip {\n    position: absolute;\n    z-index: 4;\n    width: max-content;\n    max-width: 245px;\n    padding: 10px 12px;\n    color: #ffffff;\n    background: rgba(18, 25, 33, 0.96);\n    border-radius: 9px;\n    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);\n    font-size: 13px;\n    line-height: 1.35;\n    pointer-events: none;\n    opacity: 0;\n    transform: translate(-50%, calc(-100% - 12px));\n    transition: opacity 0.12s ease;\n  }\n\n  .jj26-tooltip::after {\n    content: \"\";\n    position: absolute;\n    top: 100%;\n    left: 50%;\n    width: 0;\n    height: 0;\n    border: 7px solid transparent;\n    border-top-color: rgba(18, 25, 33, 0.96);\n    transform: translateX(-50%);\n  }\n\n  .jj26-tooltip.is-visible {\n    opacity: 1;\n  }\n\n  .jj26-tooltip strong,\n  .jj26-tooltip span {\n    display: block;\n  }\n\n  .jj26-tooltip strong {\n    margin-bottom: 2px;\n    font-size: 14px;\n  }\n\n  .jj26-tooltip em {\n    display: block;\n    margin-top: 3px;\n    color: #ffd6cf;\n    font-style: normal;\n    font-weight: 700;\n  }\n\n  .jj26-legend {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px 22px;\n    margin-top: 14px;\n    color: #49535e;\n    font-size: 13px;\n  }\n\n  .jj26-legend span {\n    display: inline-flex;\n    align-items: center;\n    gap: 7px;\n  }\n\n  .jj26-dot {\n    display: inline-block;\n    width: 11px;\n    height: 11px;\n    border-radius: 3px;\n  }\n\n  .jj26-dot-positive {\n    background: var(--jj26-red);\n  }\n\n  .jj26-dot-negative {\n    background: var(--jj26-blue);\n  }\n\n  .jj26-dot-current {\n    background: var(--jj26-red);\n    border: 2px dashed var(--jj26-red-dark);\n  }\n\n  .jj26-source {\n    margin: 17px 0 0;\n    color: #737d87;\n    font-size: 12px;\n  }\n\n  @media (max-width: 720px) {\n    .jj26-widget {\n      margin: 14px auto;\n      padding: 17px 14px 19px;\n      border-radius: 13px;\n    }\n\n    .jj26-selection {\n      margin-top: 15px;\n    }\n\n    .jj26-scroll {\n      padding-bottom: 7px;\n    }\n\n    .jj26-stage {\n      min-width: 980px;\n    }\n\n    .jj26-scroll::after {\n      content: \"Faites glisser le graphique pour parcourir les ann\u00e9es \u2192\";\n      position: sticky;\n      left: 0;\n      display: block;\n      width: max-content;\n      margin-top: 4px;\n      color: #727d88;\n      font-size: 11px;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .jj26-bar-visible,\n    .jj26-tooltip,\n    .jj26-toggle,\n    .jj26-toggle-track,\n    .jj26-toggle-dot {\n      transition: none;\n    }\n  }\n<\/style>\n\n<script>\n  (() => {\n    const widgets = document.querySelectorAll(\"[data-jj26-chart]\");\n\n    widgets.forEach((widget, widgetIndex) => {\n      if (widget.dataset.jj26Ready === \"true\") return;\n      widget.dataset.jj26Ready = \"true\";\n\n      const data = [\n        [1900, -0.2], [1901, -0.6], [1902, -1.9], [1903, -2.5], [1904, 0.0],\n        [1905, -0.2], [1906, -1.2], [1907, -2.8], [1908, -1.1], [1909, -3.5],\n        [1910, -2.5], [1911, -0.1], [1912, -2.1], [1913, -2.7], [1914, -2.6],\n        [1915, -1.6], [1916, -3.1], [1917, -0.8], [1918, -2.3], [1919, -2.8],\n        [1920, -2.0], [1921, -0.1], [1922, -2.3], [1923, -2.0], [1924, -1.7],\n        [1925, -1.6], [1926, -2.4], [1927, -2.1], [1928, -0.4], [1929, -0.9],\n        [1930, -1.3], [1931, -1.2], [1932, -2.5], [1933, -1.4], [1934, -0.2],\n        [1935, -0.2], [1936, -2.2], [1937, -1.1], [1938, -1.5], [1939, -2.1],\n        [1940, -2.2], [1941, -0.9], [1942, -1.4], [1943, -1.0], [1944, -2.0],\n        [1945, 0.0], [1946, -1.8], [1947, 0.3], [1948, -2.4], [1949, -0.3],\n        [1950, 0.7], [1951, -1.7], [1952, 0.1], [1953, -2.2], [1954, -2.6],\n        [1955, -1.0], [1956, -2.9], [1957, -1.2], [1958, -2.2], [1959, -0.3],\n        [1960, -1.7], [1961, -1.6], [1962, -2.1], [1963, -1.5], [1964, -0.6],\n        [1965, -2.3], [1966, -2.0], [1967, -1.1], [1968, -1.9], [1969, -1.8],\n        [1970, -1.0], [1971, -1.4], [1972, -2.6], [1973, -1.2], [1974, -2.0],\n        [1975, -1.4], [1976, 1.0], [1977, -2.4], [1978, -2.6], [1979, -1.3],\n        [1980, -3.0], [1981, -2.1], [1982, 0.3], [1983, 0.9], [1984, -1.5],\n        [1985, -1.3], [1986, -0.9], [1987, -1.7], [1988, -1.7], [1989, -0.2],\n        [1990, -0.9], [1991, -1.3], [1992, -1.1], [1993, -1.2], [1994, 0.5],\n        [1995, -0.1], [1996, -0.6], [1997, -1.2], [1998, -0.7], [1999, -0.3],\n        [2000, -0.9], [2001, -0.5], [2002, -0.5], [2003, 2.2], [2004, -0.3],\n        [2005, 0.8], [2006, 2.0], [2007, -0.7], [2008, -0.6], [2009, 0.0],\n        [2010, 0.4], [2011, -1.3], [2012, -0.6], [2013, 0.1], [2014, 0.1],\n        [2015, 1.3], [2016, 0.0], [2017, 1.4], [2018, 1.6], [2019, 1.6],\n        [2020, 0.1], [2021, 0.5], [2022, 2.2], [2023, 1.7], [2024, 0.3],\n        [2025, 2.1], [2026, 3.8]\n      ];\n\n      const svg = widget.querySelector(\"[data-jj26-svg]\");\n      const tooltip = widget.querySelector(\"[data-jj26-tooltip]\");\n      const selection = widget.querySelector(\"[data-jj26-selection]\");\n      const stage = widget.querySelector(\".jj26-stage\");\n      const toggle = widget.querySelector(\"[data-jj26-toggle]\");\n      const toggleLabel = widget.querySelector(\"[data-jj26-toggle-label]\");\n      const content = widget.querySelector(\"[data-jj26-content]\");\n      const ns = \"http:\/\/www.w3.org\/2000\/svg\";\n      const contentId = `jj26-chart-content-${widgetIndex + 1}`;\n\n      content.id = contentId;\n      toggle.setAttribute(\"aria-controls\", contentId);\n\n      const W = 1240;\n      const H = 530;\n      const margin = { top: 32, right: 24, bottom: 64, left: 61 };\n      const plotW = W - margin.left - margin.right;\n      const plotH = H - margin.top - margin.bottom;\n      const minY = -5;\n      const maxY = 5;\n      const ticks = [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5];\n      const slot = plotW \/ data.length;\n      const barW = Math.max(3, slot * 0.72);\n      let pinnedBar = null;\n\n      const y = (value) =>\n        margin.top + ((maxY - value) \/ (maxY - minY)) * plotH;\n\n      const makeSvg = (tag, attrs = {}) => {\n        const element = document.createElementNS(ns, tag);\n        Object.entries(attrs).forEach(([name, value]) =>\n          element.setAttribute(name, value)\n        );\n        return element;\n      };\n\n      const formatValue = (value, withPlus = true) => {\n        const absolute = Math.abs(value).toFixed(1).replace(\".\", \",\");\n        if (value < 0) return `\u2212${absolute}`;\n        if (value > 0 && withPlus) return `+${absolute}`;\n        return absolute;\n      };\n\n      const gridGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      ticks.forEach((tick) => {\n        const line = makeSvg(\"line\", {\n          x1: margin.left,\n          x2: W - margin.right,\n          y1: y(tick),\n          y2: y(tick),\n          class: tick === 0 ? \"jj26-zero-line\" : \"jj26-grid-line\"\n        });\n        gridGroup.appendChild(line);\n\n        const label = makeSvg(\"text\", {\n          x: margin.left - 10,\n          y: y(tick),\n          class: \"jj26-y-label\"\n        });\n        label.textContent = formatValue(tick, false);\n        gridGroup.appendChild(label);\n      });\n\n      const unit = makeSvg(\"text\", {\n        x: 8,\n        y: 20,\n        class: \"jj26-axis-unit\"\n      });\n      unit.textContent = \"\u00c9cart (\u00b0C)\";\n      gridGroup.appendChild(unit);\n      svg.appendChild(gridGroup);\n\n      const barsGroup = makeSvg(\"g\");\n      const zeroY = y(0);\n\n      const removeSelection = () => {\n        if (pinnedBar) pinnedBar.classList.remove(\"is-selected\");\n        pinnedBar = null;\n      };\n\n      const setSelectionCard = (year, value) => {\n        selection.classList.remove(\"is-positive\", \"is-negative\", \"is-neutral\");\n        selection.classList.add(\n          value > 0 ? \"is-positive\" : value < 0 ? \"is-negative\" : \"is-neutral\"\n        );\n        selection.innerHTML =\n          `<strong>Juin \u00e0 juillet ${year}<\/strong> \u2014 \u00e9cart \u00e0 la normale : ` +\n          `<strong>${formatValue(value)} \u00b0C<\/strong>` +\n          (year === 2026 ? ` <em>\u2022 p\u00e9riode en cours<\/em>` : \"\");\n      };\n\n      const placeTooltip = (clientX, clientY, year, value) => {\n        const rect = stage.getBoundingClientRect();\n        const tooltipX = Math.max(125, Math.min(rect.width - 125, clientX - rect.left));\n        const tooltipY = Math.max(86, clientY - rect.top);\n\n        tooltip.innerHTML =\n          `<strong>Juin \u00e0 juillet ${year}<\/strong>` +\n          `<span>\u00c9cart \u00e0 la normale : ${formatValue(value)} \u00b0C<\/span>` +\n          (year === 2026 ? `<em>P\u00e9riode en cours<\/em>` : \"\");\n        tooltip.style.left = `${tooltipX}px`;\n        tooltip.style.top = `${tooltipY}px`;\n        tooltip.classList.add(\"is-visible\");\n        tooltip.setAttribute(\"aria-hidden\", \"false\");\n      };\n\n      const hideTooltip = () => {\n        tooltip.classList.remove(\"is-visible\");\n        tooltip.setAttribute(\"aria-hidden\", \"true\");\n      };\n\n      toggle.addEventListener(\"click\", () => {\n        const willShow = content.hidden;\n        content.hidden = !willShow;\n        toggle.classList.toggle(\"is-active\", willShow);\n        toggle.setAttribute(\"aria-checked\", String(willShow));\n        toggleLabel.textContent = willShow\n          ? \"Masquer le diagramme\"\n          : \"Afficher le diagramme\";\n\n        if (!willShow) {\n          removeSelection();\n          hideTooltip();\n        }\n      });\n\n      data.forEach(([year, value], index) => {\n        const x = margin.left + index * slot + (slot - barW) \/ 2;\n        const valueY = y(value);\n        const rectY = value >= 0 ? valueY : zeroY;\n        const rectH = Math.max(1.2, Math.abs(zeroY - valueY));\n        const color = value >= 0 ? \"#e85236\" : \"#5c9ae3\";\n        const isCurrent = year === 2026;\n\n        const group = makeSvg(\"g\", {\n          class: `jj26-bar${isCurrent ? \" is-current\" : \"\"}`,\n          role: \"button\",\n          tabindex: \"0\",\n          \"aria-label\":\n            `Juin \u00e0 juillet ${year}, \u00e9cart \u00e0 la normale ${formatValue(value)} degr\u00e9 Celsius` +\n            (isCurrent ? \", p\u00e9riode en cours\" : \"\")\n        });\n\n        const visibleBar = makeSvg(\"rect\", {\n          x,\n          y: rectY,\n          width: barW,\n          height: rectH,\n          rx: 0.8,\n          fill: color,\n          class: \"jj26-bar-visible\"\n        });\n\n        const hitArea = makeSvg(\"rect\", {\n          x: margin.left + index * slot,\n          y: margin.top,\n          width: slot,\n          height: plotH,\n          class: \"jj26-hit-area\"\n        });\n\n        group.appendChild(visibleBar);\n        group.appendChild(hitArea);\n\n        group.addEventListener(\"pointerenter\", (event) => {\n          if (!pinnedBar) {\n            setSelectionCard(year, value);\n            placeTooltip(event.clientX, event.clientY, year, value);\n          }\n        });\n\n        group.addEventListener(\"pointermove\", (event) => {\n          if (!pinnedBar) placeTooltip(event.clientX, event.clientY, year, value);\n        });\n\n        group.addEventListener(\"pointerleave\", () => {\n          if (!pinnedBar) hideTooltip();\n        });\n\n        const selectBar = (event) => {\n          event.preventDefault();\n          event.stopPropagation();\n          removeSelection();\n          pinnedBar = group;\n          group.classList.add(\"is-selected\");\n          setSelectionCard(year, value);\n\n          const barBox = visibleBar.getBoundingClientRect();\n          placeTooltip(\n            barBox.left + barBox.width \/ 2,\n            Math.min(barBox.top, barBox.bottom),\n            year,\n            value\n          );\n        };\n\n        group.addEventListener(\"click\", selectBar);\n        group.addEventListener(\"keydown\", (event) => {\n          if (event.key === \"Enter\" || event.key === \" \") selectBar(event);\n          if (event.key === \"Escape\") {\n            removeSelection();\n            hideTooltip();\n          }\n        });\n\n        barsGroup.appendChild(group);\n      });\n\n      svg.appendChild(barsGroup);\n\n      const labelsGroup = makeSvg(\"g\", { \"aria-hidden\": \"true\" });\n      data.forEach(([year], index) => {\n        if (year % 5 !== 0 && year !== 2026) return;\n        const label = makeSvg(\"text\", {\n          x: margin.left + index * slot + slot \/ 2,\n          y: H - 25,\n          class: \"jj26-x-label\"\n        });\n        label.textContent = year;\n        labelsGroup.appendChild(label);\n      });\n\n      const currentLabel = makeSvg(\"text\", {\n        x: W - margin.right,\n        y: Math.max(margin.top + 14, y(3.8) - 10),\n        class: \"jj26-current-label\"\n      });\n      currentLabel.textContent = \"2026 \u2022 p\u00e9riode en cours\";\n      labelsGroup.appendChild(currentLabel);\n      svg.appendChild(labelsGroup);\n\n      svg.addEventListener(\"click\", (event) => {\n        if (event.target === svg || event.target.classList.contains(\"jj26-grid-line\")) {\n          removeSelection();\n          hideTooltip();\n        }\n      });\n    });\n  })();\n<\/script><div class=\"fusion-text fusion-text-1\"><h1><strong>\u00c9cart \u00e0 la moyenne des temp\u00e9ratures : juin-juillet 2026<\/strong><\/h1>\n<p>L&rsquo;\u00e9cart \u00e0 la moyenne \u2014 ou anomalie thermique \u2014 mesure la diff\u00e9rence entre la temp\u00e9rature observ\u00e9e et la normale de r\u00e9f\u00e9rence 1991-2020. Cet indicateur constitue la m\u00e9trique de r\u00e9f\u00e9rence pour objectiver un \u00e9pisode chaud ou frais.<\/p>\n<p>Ce qu&rsquo;il faut retenir sur la p\u00e9riode juin-juillet :<\/p>\n<p>Une anomalie de +1 \u00b0C sur un mois complet traduit d\u00e9j\u00e0 un signal significatif \u00e0 l&rsquo;\u00e9chelle nationale.<br \/>\nLes \u00e9carts se calculent sur les moyennes quotidiennes (minimales + maximales \/ 2), station par station.<br \/>\nJuillet concentre historiquement les anomalies les plus fortes, port\u00e9es par les vagues de chaleur et les blocages anticycloniques.<br \/>\nLes valeurs varient fortement selon les r\u00e9gions : la fa\u00e7ade atlantique amortit les extr\u00eames, contrairement au Sud-Est et \u00e0 la vall\u00e9e du Rh\u00f4ne.<\/p>\n<p>Avec une anomalie de +3,8 \u00b0C par rapport \u00e0 la normale 1991-2020, juin et juillet 2026 signent le d\u00e9but d&rsquo;\u00e9t\u00e9 le plus chaud jamais mesur\u00e9 en France \u2014 loin devant le pr\u00e9c\u00e9dent record de 2003 (+2,2 \u00b0C).<\/p>\n<\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":61543,"parent":60843,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_seopress_titles_title":"\u00c9cart \u00e0 la moyenne des temp\u00e9ratures : juin-juillet 2026 | Alertes-M\u00e9t\u00e9o","_seopress_titles_desc":"L'\u00e9cart \u00e0 la moyenne \u2014 ou anomalie thermique \u2014 mesure la diff\u00e9rence entre la temp\u00e9rature observ\u00e9e et la normale de r\u00e9f\u00e9rence 1991-2020.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"both","_seopress_redirections_param":"","_seopress_redirections_type":301,"_seopress_analysis_target_kw":"temperature mer","footnotes":""},"class_list":["post-61542","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/pages\/61542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/comments?post=61542"}],"version-history":[{"count":3,"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/pages\/61542\/revisions"}],"predecessor-version":[{"id":61547,"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/pages\/61542\/revisions\/61547"}],"up":[{"embeddable":true,"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/pages\/60843"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/media\/61543"}],"wp:attachment":[{"href":"https:\/\/alertes-meteo.com\/index.php\/wp-json\/wp\/v2\/media?parent=61542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}