Utforsk åpen tilgang per institusjon. Søk opp en institusjon for å se utviklingen over tid – tabellen og figuren speiler filtrene.
Endret
15. september 2026
Datagrunnlaget dekker kun artikler som er rapportert i NVI-sammenheng og inkluderer ikke monografier, antologier eller konferansebidrag i serier uten ISSN. Publikasjoner telles unikt per institusjon. En artikkel med forfattere fra flere institusjoner telles én gang hos hver av dem, så summen på tvers av institusjoner er høyere enn det nasjonale totaltallet. For å lese mer om utvalg og beregningsmåter, se metodebeskrivelsen.
Utforsk institusjonene
Skriv i søkefeltet for å filtrere tabellen. Velg en institusjon fra forslagslisten for også å se utviklingen over tid som figur. Tabellen viser én rad per institusjon og år innenfor valgt årsperiode, og «Andel åpen» er andelen artikler som er åpent tilgjengelige (alle kategorier unntatt deponert og lukket).
oa = (newFunction("u","return import(u)"))(newURL("assets/js/oa-chart.js",document.baseURI).href)instRaw =FileAttachment("data/oa_institutions.csv").csv({typed:true})instNames = [...newSet(instRaw.map((d) => d.institution))].sort((a, b) => a.localeCompare(b,"nb"))instYearsAll = [...newSet(instRaw.map((d) => d.year))].sort((a, b) => a - b)
viewof instQuery = oa.comboboxInput({options: instNames,label:"Institusjon",placeholder:"Søk etter institusjon …"})
// Disabled for now. To re-enable: move this cell back inside the// ::: {.oa-controls} block above, uncomment the input and delete the// constant - the constant holds the input's former default.// viewof instLabels = Inputs.toggle({label: "Vis verdier", value: true})instLabels =true
// Disabled for now. To re-enable: move this cell back inside the// ::: {.oa-controls} block above, uncomment the input and delete the// constant - the constant holds the input's former default.// viewof instCats = Inputs.checkbox(oa.OA_ORDER, {// value: oa.OA_ORDER,// label: "Kategorier",// format: oa.labelFor(oa.OA_LABELS)// })instCats = oa.OA_ORDER
selectedInst? oa.oaChartCard(Plot, {data: instRaw.filter((d) => d.institution=== selectedInst),mode: instMode,categories: instCats,yearFrom: instYears[0],yearTo: instYears[1],showLabels: instLabels,width:Math.min(width,960),title: selectedInst,subtitle:`NVI ${instYears[0]}–${instYears[1]}` }):html`<div class="oa-hint">Velg en institusjon fra forslagslisten i søkefeltet for å se utviklingen over tid som figur.</div>`
Tabell
instTable = {// tidy format: one row per institution + yearconst cats = oa.OA_ORDER.filter((c) => instCats.includes(c));const q = instQuery.toLowerCase();const m =newMap();for (const d of instRaw) {if (d.year< instYears[0] || d.year> instYears[1] ||!cats.includes(d.status)) continue;if (q &&!d.institution.toLowerCase().includes(q)) continue;const key =`${d.institution}|${d.year}`;if (!m.has(key)) {const row = {year: d.year,institution: d.institution};for (const c of cats) row[c] =0; m.set(key, row); } m.get(key)[d.status] += d.total; }return [...m.values()].map((r) => {const total = cats.reduce((s, c) => s + r[c],0);const open = total - (r.closed??0) - (r.deposited??0);const out = {year: r.year,institution: r.institution};for (const c of cats) { out[c] = instMode ==="pct"? (total ?Math.round((r[c] / total) *1000) /10:0): r[c]; } out.total= total; out.open_share= total ? (open / total) *100:0;return out; }).sort((a, b) => a.institution.localeCompare(b.institution,"nb") || b.year- a.year);}