Så fungerar databaserna
Du får utan kostnad ladda ner obegränsade mängder data från Konjunkturinstitutets webbplats. Du får även bearbeta, kopiera och sprida datamaterialet vidare till andra användare, också för kommersiell användning. Detta gäller både manuell hämtning och hämtning via databasens API.
-
1. Välj först den tabell som innehåller de variabler du vill titta på. I detta exempel väljs ”Barometerindikatorn och andra indikatorer, månad”.
-
2. Uppe till höger under ”Visa tabell” kan man välja mellan att lista deltabellerna som ”Expert view” eller ”List view”, i exemplet visas ”Expert view” vilket innebär att deltabellerna läggs sida vid sida. Använd markören för att välja variabler och perioder.
-
3. Uppe till höger under ”Visa tabell” kan man välja mellan att lista deltabellerna som ”Expert view” eller ”List view”, i exemplet visas ”Expert view” vilket innebär att deltabellerna läggs sida vid sida. Använd markören för att välja variabler och perioder.
-
4. Om du har en egen applikation där du vill implementera uttaget så hämtar du API-koden (URL:en och JSON-frågan) genom att klicka upp informationen under ”Gör denna tabell tillgänglig i Din applikation”
Är tabellen större än 1000 rader och 30 kolumner visas inte hela tabellen på skärmen, men du kan ladda ner den som Excel-fil eller i annat format. Gränsen för nedladdning är 250 000 celler.
Sök och hämta data enkelt
Databasernas användargränssnitt är utformat för att vara lätt att använda. Du kan snabbt söka efter den data du är intresserad av, göra egna inställningar för hur tabeller ska visas, och ladda ned resultatet.
En praktisk funktion är att du kan spara din sökning. Det innebär att du nästa gång du öppnar databasen får direkt tillgång till uppdaterad data utan att behöva göra om samma sökning igen. På så sätt sparar du tid, särskilt när nya prognoser publiceras (se exempel i bild 3 ovan).
För de flesta användare räcker det med dessa funktioner.
För dig som vill automatisera
För dig som vill integrera datainsamlingen i ett eget analysflöde eller ett program erbjuder Konjunkturinstitutets databas ett kraftfullt verktyg: ett API (Application Programming Interface). Med hjälp av API:et kan du skriva skript eller program som automatiskt hämtar uppdaterad data från databasen. Du kan själv bestämma exakt vilken information du vill hämta, till exempel genom att ange specifika variabler, tidsperioder eller format.
Det är också möjligt att koppla dataflödet direkt till din analysmiljö, som till exempel Jupyter Notebook, RStudio eller Excel via Power Query. På så sätt blir det enkelt att schemalägga hämtningar och se till att dina modeller eller rapporter alltid använder den senaste statistiken – utan att du behöver öppna gränssnittet manuellt varje gång.
API:et är särskilt användbart när du upprepat behöver hämta samma typ av data, när du vill göra större datauttag som annars tar mycket tid att ladda ned manuellt, eller när du vill bygga automatiska uppdateringar i ett analysverktyg, ett beslutsstöd eller en webbtjänst.
För att komma igång behöver du ha grundläggande programmeringskunskaper, gärna i Python eller R som är vanliga språk inom statistik och dataanalys. Det innebär till exempel att du bör veta hur man gör API-anrop via HTTP, hur man läser och tolkar svar i format som JSON eller CSV, samt hur man bearbetar tabellstrukturerad data
Det finns exempelkod tillgänglig både i Python och R, som du enkelt kan kopiera och köra i din egen miljö. Exempelkoden visar hur du ansluter till API:et, hämtar ett urval av data och läser in det i din arbetsmiljö. Exemplet innehåller också ett enkelt diagram som visualiserar den hämtade statistiken, vilket ger en snabb överblick över utvecklingen i datan. Med några enkla anpassningar kan du sedan bygga vidare och utforma ett flöde som passar dina behov.
#_____________________________________________________________________________________
#
# Exempelkod för att hämta data från prognosdatabasen (prognos.konj.se)
# Example code for fetching data from the forecast database (prognos.konj.se)
#
# Du behöver installera pyjstat, skriv följande i kommandotolken
# You need to install pyjstat, in the command prompt write the following
#
# py -m pip install pyjstat
#_____________________________________________________________________________________
#_____________________________________________________________________________________
# Importera paket
# Import package
from pyjstat import pyjstat
import requests
from matplotlib import pyplot as plt
import pandas as pd
#_____________________________________________________________________________________
# Hämta årlig data från prognosdatabasen, efter att en tabell har genererats
# från databasen, är URL:en och den faktiska JSON-förfrågan belägna längst ner
# Fetch annual data from the forecast database, after a table has been generated
# from the database, the URL and the actual JSON query are located at the bottom.
# Ange URL:en
# Input the URL
POST_URL = 'https://prognos.konj.se:443/PxWeb/api/v1/sv/SenastePrognosen/f09_bnpkonsumtioninvesteringarochutrikeshandel/F0901.px'
# Ange JSON-förfrågan
# Input the JSON query
payload = {
"query": [
{
"code": "variabel",
"selection": {
"filter": "item",
"values": [
"F0901Nbnpmp"
]
}
},
{
"code": "enhet",
"selection": {
"filter": "item",
"values": [
"F"
]
}
},
{
"code": "period",
"selection": {
"filter": "item",
"values": [
"2007",
"2008",
"2009",
"2010",
"2011",
"2012",
"2013",
"2014",
"2015",
"2016",
"2017",
"2018",
"2019",
"2020",
"2021",
"2022",
"2023",
"2024",
"2025",
"2026",
"2027"
]
}
}
],
"response": {
# Observera att 'format':'px' har ändrats till JSON-stat
# Note that 'format':'px' has been changed to JSON-stat
"format": "json-stat"
}
}
#_____________________________________________________________________________________
# Ladda data
# Load data
response = requests.post(POST_URL,json = payload)
print(response)
dataset = pyjstat.Dataset.read(response.text)
df = dataset.write('dataframe')
print(df.head())
# _____________________________________________________________________________________
# Skapa graf
# Create graph
# Ändra formatet på perioden
# Change the format of the period
df["period"] = pd.to_datetime(df["period"]) #, format = "%YM%m")
# Ändra enheten från miljoner SEK till miljarder SEK för en bättre utseende i den provisoriska grafen
# Change the unit from millions SEK to billions SEK for a better appearance in the sample graph
df["value"] = df["value"] / 1000
# Skapa graf
# Create graph
plt.figure(figsize = (8,6),dpi=100)
plt.plot(df["period"],df["value"])
# Ändra bakgrundsfärg för prognosår som börjar från 2024
# Change background color for forecast years starting from 2024
plt.axvspan('2024', '2027', color='Grey', alpha=0.4, label='Highlight')
plt.figtext(0.775,0.5, 'Prognos')
plt.grid(axis = 'y', color = "lightgrey", alpha=0.3)
# Lägg till titel och visa diagramet
# Add title and show the graph
plt.title("BNP Sverige, mdkr, fasta priser \n" "2024-2027 = senaste prognosen")
plt.show()
#_____________________________________________________________________________________
#
# Exempelkod för att hämta data från statistikdabasen (statistik.konj.se)
# Example code for fetching data from the forecast database (statistik.konj.se)
#
# Du behöver installera pyjstat, skriv följande i kommandotolken
# You need to install pyjstat, in the command prompt write the following
#
# py -m pip install pyjstat
#_____________________________________________________________________________________
#_____________________________________________________________________________________
# Importera paket
# Import package
from pyjstat import pyjstat
import requests
from matplotlib import pyplot as plt
import pandas as pd
#_____________________________________________________________________________________
# Hämta månadsdata för hela perioden för variabeln Barometerindikatorn, efter att en tabell har genererats
# från databasen, är URL:en och den faktiska JSON-förfrågan belägna längst ner
# Fetch monthly data for the entire period for the variable Barometerindicator, after a table has been generated
# from the database, the URL and the actual JSON query are located at the bottom.
# Ange URL:en
# Input the URL
POST_URL = 'https://statistik.konj.se:443/PxWeb/api/v1/sv/KonjBar/indikatorer/Indikatorm.px'
# Ange JSON-förfrågan
# Input the JSON query
payload = {
"query": [
{
"code": "Indikator",
"selection": {
"filter": "item",
"values": [
"KIFI"
]
}
}
],
"response": {
# Observera att 'format':'px' har ändrats till JSON-stat
# Note that 'format':'px' has been changed to JSON-stat
"format": "json-stat"
}
}
#_____________________________________________________________________________________
# Ladda data
# Load data
response = requests.post(POST_URL,json = payload)
print(response)
dataset = pyjstat.Dataset.read(response.text)
df = dataset.write('dataframe')
print(df.head())
# _____________________________________________________________________________________
# Skapa graf
# Create graph
# Ändra formatet på perioden
# Change the format of the period
df["Period"] = pd.to_datetime(df["Period"], format = "%YM%m")
df.set_index("Period",inplace=True)
# Skapa graf
# Create graph
plt.figure(figsize = (8,6),dpi=100)
plt.plot(df[["value"]])
plt.grid(axis = 'y', color = "lightgrey", alpha=0.3)
# Lägg till titel och visa diagramet
# Add title and show the graph
plt.title("Barometerindikatorn, 1996-2024, \n" "månatlig frekvens")
plt.show()
#_____________________________________________________________________________________
#
# Exempelkod för att hämta data från statistikdabasen (statistik.konj.se) och kombinera
# ihop serier från olika uttag
# Example code for fetching data from the statistical database (statistik.konj.se) and
# combining series from different queries.
#
# Du behöver installera pyjstat, skriv följande i kommandotolken
# You need to install pyjstat, in the command prompt write the following
#
# py -m pip install pyjstat
#_____________________________________________________________________________________
#_____________________________________________________________________________________
from pyjstat import pyjstat
import requests
from matplotlib import pyplot as plt
import pandas as pd
# Hämta månadsdata för byggindustri, efter att en tabell har genererats
# från databasen, är URL:en och den faktiska JSON-förfrågan belägna längst ner
# Fetch monthly data for construction industry, after a table has been generated
# from the database, the URL and the actual JSON query are located at the bottom.
# Ange URL:en
# Input the URL
POST_URL_BYGG = 'https://statistik.konj.se:443/PxWeb/api/v1/sv/KonjBar/ftgmanad/Barboam.px'
# Ange JSON-förfrågan
# Input the JSON query
bygg_payload = {
"query": [
{
"code": "Bransch (SNI 2007)",
"selection": {
"filter": "item",
"values": [
"BBYG"
]
}
},
{
"code": "Fråga",
"selection": {
"filter": "item",
"values": [
"106"
]
}
},
{
"code": "Serie",
"selection": {
"filter": "item",
"values": [
"S"
]
}
}
],
"response": {
# Observera att 'format':'px' har ändrats till JSON-stat
# Note that 'format':'px' has been changed to JSON-stat
"format": "json-stat"
}
}
# Ladda data, mm
# Load data, etc
response_bygg = requests.post(POST_URL_BYGG,json = bygg_payload)
print(response_bygg)
dataset_bygg = pyjstat.Dataset.read(response_bygg.text)
df_bygg = dataset_bygg.write('dataframe')
df_bygg["Period"] = pd.to_datetime(df_bygg["Period"], format = "%YM%m")
#_____________________________________________________________________________________
# Återupprepa datauttaget för ytterligare tre serier
# Repeat the data extraction for three additional series
# Handeln
# Trade
POST_URL_HANDEL = 'https://statistik.konj.se:443/PxWeb/api/v1/sv/KonjBar/ftgmanad/Barhanm.px'
handel_payload = {
"query": [
{
"code": "Bransch (SNI 2007)",
"selection": {
"filter": "item",
"values": [
"BHAN"
]
}
},
{
"code": "Fråga",
"selection": {
"filter": "item",
"values": [
"104"
]
}
},
{
"code": "Serie",
"selection": {
"filter": "item",
"values": [
"S"
]
}
}
],
"response": {
"format": "json-stat"
}
}
response_handel = requests.post(POST_URL_HANDEL,json = handel_payload)
print(response_handel)
dataset_handel = pyjstat.Dataset.read(response_handel.text)
df_handel = dataset_handel.write('dataframe')
df_handel["Period"] = pd.to_datetime(df_handel["Period"], format = "%YM%m")
# Tillverkningsindustri
# Manufacturing industry
POST_URL_TILLV = 'https://statistik.konj.se:443/PxWeb/api/v1/sv/KonjBar/ftgmanad/Barindm.px'
payload_tillv = {
"query": [
{
"code": "Bransch (SNI 2007)",
"selection": {
"filter": "item",
"values": [
"BTVI"
]
}
},
{
"code": "Fråga",
"selection": {
"filter": "item",
"values": [
"107"
]
}
},
{
"code": "Serie",
"selection": {
"filter": "item",
"values": [
"S"
]
}
}
],
"response": {
"format": "json-stat" # <- Notera att jag ändrat från px till json-stat för att kunna läsa in
}
}
response_tillv = requests.post(POST_URL_TILLV,json = payload_tillv)
print(response_tillv)
dataset_tillv = pyjstat.Dataset.read(response_tillv.text)
df_tillv = dataset_tillv.write('dataframe')
print(df_tillv.head())
df_tillv["Period"] = pd.to_datetime(df_tillv["Period"], format = "%YM%m")
# Tjänstesektorn
# Service sector
POST_URL_TJANST = 'https://statistik.konj.se:443/PxWeb/api/v1/sv/KonjBar/ftgmanad/Bartjam.px'
payload_tjanst = {
"query": [
{
"code": "Bransch (SNI 2007)",
"selection": {
"filter": "item",
"values": [
"BTJA"
]
}
},
{
"code": "Fråga",
"selection": {
"filter": "item",
"values": [
"105"
]
}
},
{
"code": "Serie",
"selection": {
"filter": "item",
"values": [
"S"
]
}
}
],
"response": {
"format": "json-stat" # <- Notera att jag ändrat från px till json-stat för att kunna läsa in
}
}
response_tjanst = requests.post(POST_URL_TJANST,json = payload_tjanst)
print(response_tillv)
dataset_tjanst = pyjstat.Dataset.read(response_tjanst.text)
df_tjanst = dataset_tjanst.write('dataframe')
print(df_tjanst.head())
df_tjanst["Period"] = pd.to_datetime(df_tjanst["Period"], format = "%YM%m")
# _____________________________________________________________________________________
# Skapa graf
# Create graph
plt.figure(figsize = (8,6),dpi=100)
plt.plot(df_bygg["Period"],df_bygg["value"],label = df_bygg["Bransch (SNI 2007)"].loc[0])
plt.plot(df_handel["Period"],df_handel["value"],label = df_handel["Bransch (SNI 2007)"].loc[0])
plt.plot(df_tillv["Period"],df_tillv["value"],label = df_tillv["Bransch (SNI 2007)"].loc[0])
plt.plot(df_tjanst["Period"],df_tjanst["value"],label = df_tjanst["Bransch (SNI 2007)"].loc[0])
plt.axhline(0, linestyle = "--", color="grey", lw =1)
plt.grid(axis = 'y', color = "lightgrey", alpha=0.3)
plt.legend()
plt.title("Antal anställda (utfall), nettotal, 1996-2024, \n" "månatlig frekvens")
plt.show()
#_____________________________________________________________________________________
#
# Exempelkod för att hämta data från prognosdatabasen (prognos.konj.se)
# Example code for fetching data from the forecast database (prognos.konj.se)
#
# Du behöver installera olika paket
# You need to install additional packages
#
# install.packages("httr")
# install.packages("rjstat")
# install.packages("ggplot2", repos="https://cran.r-project.org/")
#_____________________________________________________________________________________
# Importera paket
# Import package
library(httr)
library(ggplot2)
library(rjstat)
# Ange URL:en
# Input the URL
POST_URL <- 'https://prognos.konj.se:443/PxWeb/api/v1/sv/SenastePrognosen/f09_bnpkonsumtioninvesteringarochutrikeshandel/F0901.px'
# Ange JSON-förfrågan
# Input the JSON query
payload <- '{
"query": [
{
"code": "variabel",
"selection": {
"filter": "item",
"values": [
"F0901Nbnpmp"
]
}
},
{
"code": "enhet",
"selection": {
"filter": "item",
"values": [
"F"
]
}
},
{
"code": "period",
"selection": {
"filter": "item",
"values": [
"2007",
"2008",
"2009",
"2010",
"2011",
"2012",
"2013",
"2014",
"2015",
"2016",
"2017",
"2018",
"2019",
"2020",
"2021",
"2022",
"2023",
"2024",
"2025",
"2026",
"2027"
]
}
}
],
"response": {
"format": "json-stat"
}
}'
#_____________________________________________________________________________________
# Ladda data
# Load data
req <-POST(POST_URL, body=payload,encode = "json")
str(req$status) # Get status code, 200 = ok
df <- fromJSONstat(content(req, "text"))
# _____________________________________________________________________________________
# Skapa graf
# Create graph
final_df <- df[[1]]
final_df$value <- final_df$value / 1000
plot <- ggplot(final_df,aes(x=period,y=value,group=1))+
geom_rect(
aes(xmin = 18, xmax = 21, ymin = -Inf, ymax = Inf),
fill = "lightgrey",
alpha = 0.2)+
geom_line(color="blue",linewidth=1,alpha=0.8,linetype=1)+
labs(
title= "BNP Sverige, mdkr, fasta priser, \n2024-2027 = senaste prognosen",
x = "",
y = ""
)+
theme(
# Hide panel borders and remove grid lines
panel.background = element_rect(fill = 'white'),
panel.grid.major.y = element_line(colour="lightgrey"),
# Change axis line
axis.line = element_line(colour = "black"))+
annotate("text", 19.5, y=5250, label= "prognos")
print(plot)
#_____________________________________________________________________________________
#
# Exempelkod för att hämta data från statistikdabasen (statistik.konj.se)
# Example code for fetching data from the forecast database (statistik.konj.se)
#
# Du behöver installera olika paket
# You need to install additional packages
#
# install.packages("httr")
# install.packages("rjstat")
# install.packages("ggplot2", repos="https://cran.r-project.org/")
#_____________________________________________________________________________________
# Importera paket
# Import package
library(httr)
library(ggplot2)
library(rjstat)
# Ange URL:en
# Input the URL
POST_URL <- 'https://statistik.konj.se:443/PxWeb/api/v1/sv/KonjBar/indikatorer/Indikatorm.px'
# Ange JSON-förfrågan
# Input the JSON query
payload <- '{
"query": [
{
"code": "Indikator",
"selection": {
"filter": "item",
"values": [
"KIFI"
]
}
}
],
"response": {
"format": "json-stat"
}
}'
#_____________________________________________________________________________________
# Ladda data
# Load data
req <-POST(POST_URL, body=payload,encode = "json")
str(req$status) # Get status code, 200 = ok
df <- fromJSONstat(content(req, "text"))
req <-POST(POST_URL, body=payload,encode = "json")
str(req$status) # Get status code, 200 = ok
df <- fromJSONstat(content(req, "text"))
final_data <- df[[1]]
# _____________________________________________________________________________________
# Skapa graf
# Create graph
final_data$Period<-gsub("M","-",as.character(final_data$Period))
final_data$Period<-gsub(" ","",paste(final_data$Period,"-01"))
final_data$Period<-as.Date(final_data$Period,format="%Y-%m-%d")
plot <- ggplot(final_data,aes(y=value,x=Period))+
geom_line(color="blue",linewidth=1,alpha=0.8,linetype=1)+
scale_x_date(
limits = as.Date(c('1996-01-01','2024-01-01')),
breaks = scales::date_breaks("2 years"), date_labels="%Y",
guide = guide_axis(angle = 45)
)+
scale_y_continuous(limits=c(60,130),
breaks = scales::breaks_width(10)
)+
theme(
# Hide panel borders and remove grid lines
panel.background = element_rect(fill = 'white'),
panel.grid.major.y = element_line(colour="lightgrey"),
# Change axis line
axis.line = element_line(colour = "black")
)+
labs(
title="Barometerindikatorn, 1996-2024, \månatlig frekvens"
)
print(plot)
#_____________________________________________________________________________________
#
# Exempelkod för att hämta data från statistikdabasen (statistik.konj.se) och kombinera
# ihop serier från olika uttag
# Example code for fetching data from the statistical database (statistik.konj.se) and
# combining series from different queries.
#
# Du behöver installera olika paket
# You need to install additional packages
#
# install.packages("httr")
# install.packages("rjstat")
# install.packages("ggplot2", repos="https://cran.r-project.org/")
#_____________________________________________________________________________________
# Importera paket
# Import package
library(httr)
library(ggplot2)
library(rjstat)
# Ange URL:en
# Input the URL
# BYGG
POST_URL_BYGG = 'https://statistik.konj.se:443/PxWeb/api/v1/sv/KonjBar/ftgmanad/Barboam.px'
# Ange JSON-förfrågan
# Input the JSON query
bygg_payload = '{
"query": [
{
"code": "Bransch (SNI 2007)",
"selection": {
"filter": "item",
"values": [
"BBYG"
]
}
},
{
"code": "Fråga",
"selection": {
"filter": "item",
"values": [
"106"
]
}
},
{
"code": "Serie",
"selection": {
"filter": "item",
"values": [
"S"
]
}
}
],
"response": {
"format": "json-stat"
}
}'
# Ladda data, mm
# Load data, etc
req_bygg <-POST(POST_URL_BYGG, body=bygg_payload,encode = "json")
str(req_bygg$status) # Get status code, 200 = ok
df_bygg <- fromJSONstat(content(req_bygg, "text"))
final_data_bygg <- df_bygg[[1]]
final_data_bygg$Period<-gsub("M","-",as.character(final_data_bygg$Period))
final_data_bygg$Period<-gsub(" ","",paste(final_data_bygg$Period,"-01"))
final_data_bygg$Period<-as.Date(final_data_bygg$Period,format="%Y-%m-%d")
#_____________________________________________________________________________________
# Återupprepa datauttaget för ytterligare tre serier
# Repeat the data extraction for three additional series
# Handeln
# Trade
POST_URL_HANDEL = 'https://statistik.konj.se:443/PxWeb/api/v1/sv/KonjBar/ftgmanad/Barhanm.px'
handel_payload = '{
"query": [
{
"code": "Bransch (SNI 2007)",
"selection": {
"filter": "item",
"values": [
"BHAN"
]
}
},
{
"code": "Fråga",
"selection": {
"filter": "item",
"values": [
"104"
]
}
},
{
"code": "Serie",
"selection": {
"filter": "item",
"values": [
"S"
]
}
},
{
"code": "Period",
"selection": {
"filter": "all",
"values": [
"*"
]
}
}
],
"response": {
"format": "json-stat"
}
}'
req_handel <-POST(POST_URL_HANDEL, body=handel_payload,encode = "json")
str(req_handel$status) # Get status code, 200 = ok
df_handel <- fromJSONstat(content(req_handel, "text"))
final_data_handel <- df_handel[[1]]
final_data_handel$Period<-gsub("M","-",as.character(final_data_handel$Period))
final_data_handel$Period<-gsub(" ","",paste(final_data_handel$Period,"-01"))
final_data_handel$Period<-as.Date(final_data_handel$Period,format="%Y-%m-%d")
# Tillverkningsindustri
# Manufacturing industry
POST_URL_TILLV = 'https://statistik.konj.se:443/PxWeb/api/v1/sv/KonjBar/ftgmanad/Barindm.px'
payload_tillv = '{
"query": [
{
"code": "Bransch (SNI 2007)",
"selection": {
"filter": "item",
"values": [
"BTVI"
]
}
},
{
"code": "Fråga",
"selection": {
"filter": "item",
"values": [
"107"
]
}
},
{
"code": "Serie",
"selection": {
"filter": "item",
"values": [
"S"
]
}
},
{
"code": "Period",
"selection": {
"filter": "all",
"values": [
"*"
]
}
}
],
"response": {
"format": "json-stat"
}
}'
req_tillv <-POST(POST_URL_TILLV, body=payload_tillv,encode = "json")
str(req_tillv$status) # Get status code, 200 = ok
df_tillv <- fromJSONstat(content(req_tillv, "text"))
final_data_tillv <- df_tillv[[1]]
final_data_tillv$Period<-gsub("M","-",as.character(final_data_tillv$Period))
final_data_tillv$Period<-gsub(" ","",paste(final_data_tillv$Period,"-01"))
final_data_tillv$Period<-as.Date(final_data_tillv$Period,format="%Y-%m-%d")
# Tjänstesektorn
# Service sector
POST_URL_TJANST = 'https://statistik.konj.se:443/PxWeb/api/v1/sv/KonjBar/ftgmanad/Bartjam.px'
payload_tjanst = '{
"query": [
{
"code": "Bransch (SNI 2007)",
"selection": {
"filter": "item",
"values": [
"BTJA"
]
}
},
{
"code": "Fråga",
"selection": {
"filter": "item",
"values": [
"105"
]
}
},
{
"code": "Serie",
"selection": {
"filter": "item",
"values": [
"S"
]
}
},
{
"code": "Period",
"selection": {
"filter": "all",
"values": [
"*"
]
}
}
],
"response": {
"format": "json-stat"
}
}'
req_tjanst <-POST(POST_URL_TJANST, body=payload_tjanst,encode = "json")
str(req_tjanst$status) # Get status code, 200 = ok
df_tjanst <- fromJSONstat(content(req_tjanst, "text"))
final_data_tjanst <- df_tjanst[[1]]
final_data_tjanst$Period<-gsub("M","-",as.character(final_data_tjanst$Period))
final_data_tjanst$Period<-gsub(" ","",paste(final_data_tjanst$Period,"-01"))
final_data_tjanst$Period<-as.Date(final_data_tjanst$Period,format="%Y-%m-%d")
# _____________________________________________________________________________________
# Skapa graf
# Create graph
test_merge <- merge(final_data_bygg,final_data_handel, on = "Bransch (SNI 2007)", all = T)
test_merge <- merge(test_merge, final_data_tillv, on = "Bransch (SNI 2007)", all = T)
test_merge <- merge(test_merge, final_data_tjanst, on = "Bransch (SNI 2007)", all = T)
names(test_merge)[names(test_merge) == "Bransch (SNI 2007)"] <- "Bransch"
plot <- ggplot(test_merge, aes(x=Period,y=value,group = Bransch,color=Bransch)) + geom_line(lwd=1) +
theme(
# Hide panel borders and remove grid lines
panel.background = element_rect(fill = 'white'),
panel.grid.major.y = element_line(colour="lightgrey"),
# Change axis line
axis.line = element_line(colour = "black"),
legend.position = c(0.87,0.1),
legend.background=element_rect(colour="lightgrey"),
)+
scale_x_date(
limits = as.Date(c('2000-01-01','2024-01-01')),
breaks = scales::date_breaks("2 years"), date_labels="%Y",
guide = guide_axis(angle = 45)
)+
labs(
title="Barometerindikatorn, 1996-2024, \nmånatlig frekvens",
y = "",
x = ""
)
print(plot