ionvirgil.ro
  • Prezentare
  • Portofoliu
  • Despre mine
Proiectul arată cum putem vizualiza datele din anchetele statistice, în cazul de față sănătatea mintală în epoca hiperconectivității având la bază studiul național IRES despre sănătatea mintală și utilizarea mediului digital, 2025.
Published

4 august 2026

Modified

4 august 2026

Keywords

sănătate mintală România, hiperconectivitate, sondaj IRES 2025, waffle chart, Observable D3, vizualizarea datelor din anchetele statistice

← Înapoi la portofoliu

Anchetă statistică · dashboard interactiv · vizualizarea datelor

Vizualizarea datelor din anchetele statistice

Ca exemplu de reprezentare, vom folosi datele din studiul național IRES din 2025 privind sănătatea mintală în epoca hiperconectivității. Fiecare coloană este construită din puncte unde un punct reprezintă un punct procentual.

Observable OJS D3.js IRES 2025

d3 = require("d3@7")
{
  const C = {navy:"#123c69",blue:"#2f6fbb",cyan:"#27a8b8",teal:"#087f8c",green:"#42a56b",gold:"#f4b942",orange:"#ef8a3d",coral:"#e85d75",red:"#c73e56",violet:"#7656a6",gray:"#aab5c3",black:"#263445"};
  const likert5 = ["1 - Deloc / niciodată","2","3","4","5 - Foarte mult / frecvent","NȘ/NR"];
  const anxietyScale = ["Deloc","Rar","Uneori","Foarte des / aproape zilnic","NȘ/NR"];
  const agreeScale = ["1 - În total dezacord","2","3","4","5 - Total de acord","NȘ/NR"];
  const colors = [C.gray,C.cyan,C.blue,C.violet,C.coral,C.black];
  const rows = (labels,items) => items.map(([label,values])=>({label,values:values.map((value,i)=>({answer:labels[i],value}))}));
  const sections = [
    {id:"context",n:3,title:"Context de consum și conectare digitală",question:"Cât timp petrec online și pentru ce folosesc internetul?",note:"Pentru scopul utilizării internetului răspunsul este multiplu.",kind:"groups",groups:[
      {label:"Timp zilnic petrecut online",items:[{answer:"Mai puțin de 2 ore",value:13},{answer:"Între 2 și 4 ore",value:50},{answer:"Între 5 și 7 ore",value:22},{answer:"Peste 8 ore",value:14}]},
      {label:"Platforme folosite",items:[{answer:"WhatsApp",value:38},{answer:"Facebook",value:34},{answer:"TikTok",value:11},{answer:"YouTube",value:8},{answer:"Instagram",value:6},{answer:"Altele",value:1},{answer:"NȘ/NR",value:2}]},
      {label:"Scopul utilizării",items:[{answer:"Informare",value:65},{answer:"Socializare",value:50},{answer:"Divertisment",value:36},{answer:"Muncă / școală",value:23},{answer:"Comerț online",value:7},{answer:"NȘ/NR",value:1}]}
    ]},
    {id:"simptome",n:4,title:"Simptome de anxietate și depresie",question:"În ultimele două săptămâni, cât de des v-ați confruntat cu situația selectată?",kind:"likert",scale:anxietyScale,items:rows(anxietyScale,[
      ["V-ați simțit obosit(ă), fără energie",[13,26,40,21,1]],["V-ați simțit neliniștit(ă) sau tensionat(ă)",[19,23,43,16,0]],["V-ați simțit ușor iritabil(ă)",[18,29,39,13,2]],["V-ați simțit excesiv de îngrijorat(ă)",[25,24,33,17,1]],["V-ați confruntat cu tulburări ale somnului",[24,28,31,17,1]],["Ați avut dificultăți să vă relaxați",[24,27,33,15,1]],["Nu ați reușit să controlați îngrijorarea",[27,27,33,10,2]],["Ați avut teamă că se poate întâmpla ceva rău",[29,27,32,11,1]],["Ați fost agitat(ă), fiindu-vă greu să stați liniștit(ă)",[30,27,28,13,1]],["Nu ați avut interes sau plăcere în activități",[26,32,35,8,1]],["V-ați simțit trist(ă), deprimat(ă) sau fără speranță",[35,24,29,11,1]],["Ați fost mai lent(ă) sau mai agitat(ă) decât de obicei",[27,31,33,8,2]],["Ați avut dificultăți de concentrare",[29,34,29,8,1]],["Ați avut stimă de sine scăzută sau sentimente de eșec",[38,26,26,10,1]],["Ați avut gânduri negative despre sine sau viață",[54,20,17,7,1]],["Ați avut gânduri de autovătămare sau suicid",[86,7,4,2,1]]])},
    {id:"singuratate",n:5,title:"Singurătate și lipsă de apartenență",question:"Cât de adevărată este afirmația selectată?",kind:"likert",scale:likert5,items:rows(likert5,[["Îmi este greu să găsesc pe cineva cu care să îmi împărtășesc gândurile",[47,15,16,11,11,1]],["Nu am prieteni apropiați",[49,16,16,10,8,1]],["Simt că nu fac parte dintr-o comunitate",[52,17,15,8,7,1]],["Mă simt izolat(ă) de ceilalți oameni",[58,15,15,8,4,1]]])},
    {id:"excludere",n:6,title:"Excludere digitală subiectivă",question:"În ce măsură vă caracterizează afirmația selectată?",kind:"likert",scale:likert5,items:rows(likert5,[["Lipsa competențelor digitale îmi limitează accesul la informații, muncă sau servicii",[57,18,11,6,7,2]],["Rămân în urmă față de alții la utilizarea serviciilor online",[51,22,17,6,4,2]],["Mă simt exclus(ă) când ceilalți folosesc tehnologii pe care nu le stăpânesc",[65,16,10,4,3,1]],["Am nevoie de ajutorul altora pentru sarcini digitale simple",[61,21,10,4,3,1]],["Îmi este dificil să mențin legătura cu apropiații din cauza canalelor digitale",[73,13,7,3,3,1]]])},
    {id:"fomo",n:7,title:"FoMO, FoMI și nomofobie",question:"Cât de des ați simțit situația selectată?",kind:"likert",scale:likert5,items:rows(likert5,[["Simt nevoia să fiu la curent cu ce fac ceilalți",[39,29,17,8,6,1]],["Mi-e teamă că prietenii se distrează mai mult decât mine",[60,16,13,4,5,3]],["Mă îngrijorează că nu pot comunica imediat",[39,27,16,10,7,1]],["Devin neliniștit(ă) când rămân fără baterie",[40,27,13,11,6,2]],["Am nevoie să verific frecvent fluxurile de știri",[37,27,18,9,8,2]],["Mi-e teamă să nu pierd știri sau actualizări importante",[46,25,16,7,5,1]],["Mă neliniștește că ratez informații dacă nu verific rețelele",[51,23,14,6,4,1]],["Îmi verific telefonul chiar fără motiv",[25,28,22,11,12,2]],["Devin neliniștit(ă) când nu pot verifica rețelele sociale",[57,21,13,3,4,2]],["Mă îngrijorează că alții au experiențe plăcute fără mine",[64,17,10,5,4,2]],["Simt anxietate dacă telefonul este închis sau fără semnal",[49,24,13,7,5,2]]])},
    {id:"doom",n:8,title:"Doomscrolling și anxietate informațională",question:"Cât de des vă confruntați cu situația selectată?",kind:"likert",scale:likert5,items:rows(likert5,[["Știrile negative îmi afectează dispoziția",[31,20,20,15,13,2]],["Citesc compulsiv știri negative",[50,26,15,5,3,1]]])},
    {id:"cyber",n:9,title:"Cybercondria",question:"Cât de des vă confruntați cu situația selectată?",kind:"likert",scale:likert5,items:rows(likert5,[["Caut frecvent informații medicale online",[12,29,29,17,14,1]],["Mă îngrijorez excesiv după ce citesc despre boli",[34,27,20,9,9,1]]])},
    {id:"dependenta",n:10,title:"Dependența de social media",question:"Cât de des vă confruntați cu situația selectată?",kind:"likert",scale:likert5,items:rows(likert5,[["Am continuat social media chiar dacă îmi dăunează",[35,26,20,11,7,3]],["Am încercat fără succes să reduc timpul online",[33,27,21,10,6,3]],["Mă gândesc des la social media",[25,37,23,9,5,1]],["Simt nevoia să petrec tot mai mult timp pe social media",[32,34,19,8,5,1]],["Am neglijat alte activități din cauza social media",[47,24,16,7,5,1]],["Devin neliniștit(ă) dacă nu pot accesa rețelele sociale",[49,26,14,6,4,1]]])},
    {id:"hartuire",n:11,title:"Hărțuire și stigmatizare online",question:"Selectați indicatorul pentru comparație.",kind:"groups",groups:[
      {label:"Victime ale hărțuirii online",items:[{answer:"Da",value:15},{answer:"Nu",value:78},{answer:"Nu sunt sigur(ă)",value:7}]},
      {label:"Stigmatizare / marginalizare online",items:[{answer:"Da",value:17},{answer:"Nu",value:75},{answer:"Nu sunt sigur(ă)",value:8},{answer:"Nu răspund",value:1}]},
      {label:"Cunoștințe despre revenge porn",items:[{answer:"Cunoștință / coleg(ă)",value:8},{answer:"Mie personal",value:5},{answer:"Membru al familiei",value:2},{answer:"Nu am cunoștință",value:85},{answer:"Nu răspund",value:1}]},
      {label:"Experiențe negative online",items:[{answer:"Comentarii negative / insulte",value:3},{answer:"Hărțuire / amenințări",value:2},{answer:"Conținut negativ",value:1},{answer:"Escrocherii / fraudă",value:1},{answer:"Nu doresc să spun",value:16},{answer:"Nu am avut",value:77}]},
      {label:"Strategii folosite · frecvențe absolute",unit:"cazuri",items:[{answer:"Ignorare / unfollow",value:17},{answer:"Blocare / ieșire / ștergere",value:8},{answer:"Alte activități / terapie",value:7},{answer:"Răspuns asertiv sau ironic",value:6},{answer:"Raportare / autorități",value:4},{answer:"Altă strategie",value:3},{answer:"Fără strategie",value:13}]}
    ]},
    {id:"autoreglare",n:12,title:"Stresul notificărilor și autoreglarea digitală",question:"Cât de mult sunteți de acord cu afirmația selectată?",kind:"likert",scale:agreeScale,items:rows(agreeScale,[["Pot reduce timpul online când mă simt obosit(ă)",[2,5,11,20,60,2]],["Știu cum să mă protejez emoțional de experiențele negative online",[3,7,15,25,47,3]],["Simt nevoia să iau o pauză online pentru sănătatea mintală",[5,8,16,21,45,4]],["Îmi revin rapid după o experiență negativă online",[4,6,16,19,46,10]],["M-ar ajuta să fiu mai bine educat digital",[10,11,24,18,30,6]],["Comunitățile online îmi oferă sprijin real",[16,17,26,17,14,11]]])},
    {id:"echilibru",n:13,title:"Strategii pentru echilibrul emoțional",question:"Răspunsuri deschise despre echilibrul online și măsurile necesare.",kind:"open",groups:[
      {label:"Ce ajută la menținerea echilibrului",items:[{answer:"Evitarea unor conținuturi / persoane",value:3},{answer:"Autocontrolul / voința",value:3},{answer:"Detașarea emoțională",value:3},{answer:"Discernământul / rațiunea",value:3},{answer:"Familia / prietenii",value:2},{answer:"Viața reală / fizică",value:2},{answer:"Muzică / divertisment / umor",value:2},{answer:"Mișcare / sport",value:1},{answer:"Verificarea informațiilor",value:1},{answer:"Credința",value:1},{answer:"Conținut pozitiv",value:1},{answer:"Jocuri",value:1},{answer:"Conținut de interes",value:1},{answer:"Nu există",value:58},{answer:"Nu doresc să spun",value:18}]},
      {label:"Măsuri considerate necesare",items:[{answer:"Restricționarea timpului online",value:8},{answer:"Detașarea emoțională",value:3},{answer:"Filtrarea informațiilor",value:2},{answer:"Echilibru digital-real / pauze",value:2},{answer:"Blocarea conținuturilor",value:1},{answer:"Reglementări / control",value:1},{answer:"Interzicerea unor platforme",value:1},{answer:"Educație digitală / gândire critică",value:1},{answer:"Autocontrol / responsabilitate",value:1},{answer:"Timp în aer liber / mișcare",value:1},{answer:"Socializare fizică",value:1},{answer:"Terapie / sprijin",value:1},{answer:"Sancționarea postărilor",value:1},{answer:"Altceva",value:1},{answer:"Nu știu",value:67},{answer:"Nu răspund",value:9}]}
    ]},
    {id:"autoevaluare",n:14,title:"Autoevaluarea sănătății mintale și impactul digital",question:"Selectați indicatorul pentru comparație.",kind:"groups",groups:[
      {label:"Starea generală de sănătate mintală",items:[{answer:"Foarte bună",value:42},{answer:"Bună",value:43},{answer:"Nici bună, nici proastă",value:13},{answer:"Proastă",value:2},{answer:"Foarte proastă",value:1},{answer:"NȘ/NR",value:1}]},
      {label:"Impactul negativ al folosirii excesive a mediului digital",items:[{answer:"1 - Deloc",value:20},{answer:"2",value:15},{answer:"3",value:23},{answer:"4",value:20},{answer:"5 - Foarte mult",value:19},{answer:"NȘ/NR",value:3}]}
    ]}
  ];
  const profiles={"Femeile":["Raportează mai frecvent anxietate, oboseală și stres legat de notificări.","Admit mai des că sănătatea mintală este afectată de folosirea excesivă a internetului.","Multitaskingul între muncă, familie și rețele poate crește stresul."],"Bărbații":["Declară mai frecvent verificarea repetată a telefonului, utilizarea nocturnă și conflictele între timpul online și alte activități.","Tind să raporteze mai mult dependența comportamentală: gaming și scroll compulsiv."],"Tinerii":["Au niveluri ridicate de FoMO, nomofobie și dependență de social media.","Se simt sănătoși, dar recunosc că mediul digital le afectează psihicul."],"Adulții":["Sunt mai predispuși la cybercondrie și doomscrolling.","Anxietățile sunt legate de sănătate, viitor economic și responsabilități familiale și profesionale."],"Seniorii conectați":["Recunosc dificultăți tehnologice.","Trăiesc excluziunea digitală subtilă: participă, dar cu teamă și reticență."],"Educație scăzută":["Raportează mai frecvent anxietate, oboseală și stres legat de notificări."],"Educație medie":["Profil relativ echilibrat, cu raportări moderate de simptome și vulnerabilitate la cybercondrie."],"Educație ridicată":["Declară mai mult stres informațional, insomnie și oboseală cognitivă.","Presiunea de a fi informat și prezent online crește odată cu capitalul cultural."]};

  const app=document.createElement("section");app.className="mh-dashboard";app.innerHTML=`<div class="mh-sourcebar"><span><strong>Sursa:</strong> IRES · Q Magazine · septembrie 2025</span><span>n = 800 · CAWI · utilizatori de internet 18+</span></div><nav class="mh-tabs" aria-label="Temele anchetei statistice"></nav><section class="mh-panel"><div class="mh-panel-head"><div><p class="mh-eyebrow"></p><h3></h3></div><label><span class="visually-hidden">Alege afirmația sau indicatorul</span><select class="mh-select"></select></label></div><p class="mh-question"></p><p class="mh-note"></p><div class="mh-chart"></div><div class="mh-scale"></div><div class="mh-summary"></div></section><section class="mh-panel" style="margin-top:1rem"><div class="mh-panel-head"><div><p class="mh-eyebrow">Comparații calitative - Sursă IRES</p><h3>Corelații socio-demografice</h3></div><select class="mh-select mh-profile-select">${Object.keys(profiles).map(x=>`<option>${x}</option>`).join("")}</select></div><div class="mh-profile" style="margin-top:1rem"><div class="mh-profile-copy"></div><div><p class="mh-note">Aceste concluzii sunt formulate calitativ în raport; documentul nu publică procente pe subgrupuri, de aceea nu sunt transformate artificial în valori numerice.</p><div class="mh-open-grid" data-profiles></div></div></div></section>`;
  const tabs=app.querySelector(".mh-tabs"),panel=app.querySelector(".mh-panel"),select=panel.querySelector("select"),chart=panel.querySelector(".mh-chart"),scale=panel.querySelector(".mh-scale"),summary=panel.querySelector(".mh-summary");
  const fmt=v=>`${String(v).replace(".",",")}%`;
  const tooltip=document.createElement("div");tooltip.className="mh-tooltip";tooltip.hidden=true;document.body.append(tooltip);
  const drawColumns=(items,unit="%")=>{chart.replaceChildren();scale.replaceChildren();summary.replaceChildren();const width=Math.max(620,Math.min(1040,items.length*125+120)),height=430,margin={t:65,r:25,b:145,l:25},innerW=width-margin.l-margin.r,innerH=height-margin.t-margin.b,svg=d3.create("svg").attr("viewBox",[0,0,width,height]).attr("role","img");const x=d3.scaleBand().domain(items.map(d=>d.answer)).range([margin.l,width-margin.r]).padding(.18);const max=unit==="%"?100:Math.max(20,d3.max(items,d=>d.value));items.forEach((d,i)=>{const g=svg.append("g");const cols=10,cell=Math.min(10,(x.bandwidth()-4)/cols),count=unit==="%"?Math.round(d.value):Math.round(d.value),rowsN=Math.ceil(max/cols),baseY=margin.t+innerH;for(let k=0;k<Math.ceil(max);k++){const col=k%cols,row=Math.floor(k/cols),filled=k<count;g.append("circle").attr("cx",x(d.answer)+x.bandwidth()/2+(col-4.5)*cell).attr("cy",baseY-row*cell).attr("r",Math.max(2.2,cell*.37)).attr("fill",filled?colors[i%colors.length]:"#e8edf3").attr("opacity",filled?1:.75).on("pointermove",event=>{tooltip.hidden=false;tooltip.textContent=`${d.answer}: ${d.value}${unit==="%"?"%":" cazuri"}`;tooltip.style.left=`${event.clientX+12}px`;tooltip.style.top=`${event.clientY-34}px`}).on("pointerleave",()=>tooltip.hidden=true)}g.append("text").attr("x",x(d.answer)+x.bandwidth()/2).attr("y",margin.t+innerH-rowsN*cell-12).attr("text-anchor","middle").attr("font-size",18).attr("font-weight",800).attr("fill",C.navy).text(unit==="%"?fmt(d.value):d.value);const words=d.answer.split(/\s+/);const lines=[];let line="";words.forEach(w=>{if((line+" "+w).trim().length>18){lines.push(line);line=w}else line=(line+" "+w).trim()});if(line)lines.push(line);lines.slice(0,4).forEach((txt,j)=>g.append("text").attr("x",x(d.answer)+x.bandwidth()/2).attr("y",height-margin.b+25+j*15).attr("text-anchor","middle").attr("font-size",10.5).attr("fill",C.black).text(txt))});chart.append(svg.node())};
  const drawLikert=item=>{drawColumns(item.values);scale.innerHTML=item.values.map((d,i)=>`<span><i class="mh-dot" style="background:${colors[i]}"></i>${d.answer}</span>`).join("");const positive=d3.sum(item.values.slice(3,5),d=>d.value),low=d3.sum(item.values.slice(0,2),d=>d.value);summary.innerHTML=`<article><strong>${fmt(low)}</strong><span>primele două trepte</span></article><article><strong>${fmt(positive)}</strong><span>ultimele două trepte</span></article><article><strong>${fmt(item.values[2]?.value||0)}</strong><span>poziția mediană a scalei</span></article>`};
  const update=section=>{panel.querySelector(".mh-eyebrow").textContent="Rezultate IRES";panel.querySelector("h3").textContent=section.title;panel.querySelector(".mh-question").textContent=section.question;panel.querySelector(".mh-note").textContent=section.note||"Un punct reprezintă un punct procentual.";select.hidden=false;if(section.kind==="likert"){select.innerHTML=section.items.map((d,i)=>`<option value="${i}">${d.label}</option>`).join("");const render=()=>drawLikert(section.items[+select.value]);select.onchange=render;render()}else if(section.kind==="groups"){select.innerHTML=section.groups.map((d,i)=>`<option value="${i}">${d.label}</option>`).join("");const render=()=>{const g=section.groups[+select.value];drawColumns(g.items,g.unit==="cazuri"?"cazuri":"%");panel.querySelector(".mh-note").textContent=g.unit==="cazuri"?"Frecvențe absolute publicate de IRES; un punct reprezintă un caz raportat.":(section.note||"Un punct reprezintă un punct procentual.")};select.onchange=render;render()}else{select.innerHTML=section.groups.map((d,i)=>`<option value="${i}">${d.label}</option>`).join("");const render=()=>{chart.replaceChildren();scale.replaceChildren();summary.replaceChildren();const g=section.groups[+select.value],grid=document.createElement("div");grid.className="mh-open-grid";grid.innerHTML=g.items.map(d=>`<div class="mh-open-row"><span>${d.answer}</span><b>${fmt(d.value)}</b></div>`).join("");chart.append(grid)};select.onchange=render;render()}tabs.querySelectorAll("button").forEach(b=>b.classList.toggle("is-active",b.dataset.id===section.id))};
  sections.forEach(s=>{const b=document.createElement("button");b.className="mh-tab";b.dataset.id=s.id;b.textContent=s.title;b.onclick=()=>update(s);tabs.append(b)});update(sections[0]);
  const pselect=app.querySelector(".mh-profile-select"),pcopy=app.querySelector(".mh-profile-copy"),pgrid=app.querySelector("[data-profiles]");const updateProfile=()=>{const name=pselect.value;pcopy.innerHTML=`<h4>${name}</h4><ul>${profiles[name].map(x=>`<li>${x}</li>`).join("")}</ul>`;pgrid.innerHTML=Object.keys(profiles).map(x=>`<button class="mh-tab${x===name?" is-active":""}" type="button" data-profile="${x}">${x}</button>`).join("");pgrid.querySelectorAll("button").forEach(b=>b.onclick=()=>{pselect.value=b.dataset.profile;updateProfile()})};pselect.onchange=updateProfile;updateProfile();return app;
}

Cum folosești acest dashboard?

Pentru întrebările cu scală, selectorul (butonul din dreapta sus) schimbă afirmația, iar coloanele verticale compară toate treptele de răspuns. Pentru întrebările cu răspuns multiplu, fiecare coloană are propria bază de 100 de puncte. El poate fi adaptat în funcție de ancheta statistică.

Sursa datelor

Datele și formulările provin din raportul IRES - Sănătatea mintală în epoca hiperconectivității.

Inspirația vine din Survey waffle / Observable.

← Înapoi la portofoliu

Despre autor →

 
Cookie Preferences