The data that provided us with the figures on overnight stays of tourists in Switzerland all come from the "Beherbergungsstatistik" (Tourist Accommodation Statistics) recorded by the "HESTA" (HESTA, 2024). These statistics are conducted at national level for 5000 hotels, health resorts and guesthouses (STV, 2022). It is important to note that the map visualizes overnight stays in the hotel industry in Switzerland, i.e. overnight stays in hotels, guesthouses, inns, motels and health resorts. Not included are overnight stays in the parahotel industry, i.e. in commercially managed holiday flats (Airbnb’s), campsites, youth hostels, collective accommodation, agritourism and bed & breakfasts. This statistic includes the number of overnight stays for each month and each canton, as well as the country from which the guests originate (place of residence). The data set has been compiled since 2005 and covers the period up to 31 March 2024. However, the focus of this study is on the period between January 2014 and December 2023, in order to investigate the development of tourism over the past 10 years.
In order to display the countries, we used the administrative boundaries of GADM (GADM, 2022). We used the boundaries of the countries and simplified them in order to reduce loading time and too much detail is not necessary for a map on global scale. Furthermore, we combined some of the countries to bigger regions, like “Other West Asia” or “Other Nord Africa”, so that the polygons matched our Tourist accommodation data (HESTA, 2024). We also used population data (World Bank, 2022; Worldometer, n.d.) to normalize our Tourist Accommodation Statistics for each country or region in order to generate a choropleth map.
To generate our map we used RShiny and wrote a RShiny Application. To build the application and the interactive map we used the following packages:
We displayed a time period from January 2014 to December 2023, in order to reduce storage space and loading time. Therefore we decided to focus our research question on this time period, because we thought that especially the years during Covid-19 could be of interest.
We normalized the numbers of overnight stays per country with the associated population data. In our case this means that our map shows the number of overnight stays per 100k inhabitants per country on the map. It is essential to normalize data in order to generate choropleth maps, because the population varies a lot between the countries. Otherwise, countries with a great number of inhabitants would always stand out.
For our map we have selected a light gray basemap from "ESRI" called "ESRI.WorldGrayCanvas" (ESRI, 2011). It displays minimal colors, labels and features. With this as background, it supports our choice of color as best as possible. Topography is not displayed as it would distract from the important information and does not generate any added value. The light gray theme is important for the readability as the colors of the data in the map are in different shades of blue and a more colorful background could distract the users. We used the coordinate system WGS84 (World Geodetic System 1984) since we display data on a global scale. This background map is in the Mercator projection, we use it although it distorts the sizes near the poles, because it is an often used and therefore well-known projection for choropleth maps (Slocum, 2014).
Since a large part of the world's population suffers from different kinds of colorblindness, it is very important to make visualized data readable for everybody (Jenny & Kelso, 2007). Therefore we chose a colorpalette which is readable for everybody. ne possible colorpalette that suits these conditions is a combination of blue and orange and all shades thereof (Muth, 2020). Blue could be used for one extreme and orange for the other. The transistion of both colors could be used for the data inbetween. As we only have one extreme, we just used one color, blue. We tested our map display and our colorpalette with the Color Oracle by Bernhard Jenny (color blindness simulator) to ensure that there are no issues with color blindness in our display.
We used a sequential color scheme to visualize the data in our map (Brewer, 1999). We decided to do so as we have numerical data and the level of measurement of our data is ratio (overnight stays per 100k inhabitants). Since we do not have nominal data, we stayed with only one color and chose color value as visual variable. This goes in line with the findings of White (2017), who's study show, that color value is suitable for numerical data. As a higher number equals a higher number of tourists, we chose to visualize: the higher the number the darker the blue, since a darker color gets associated more likely with a greater value. Furthermore, we chose to do the scale for the class breaks manually to logarithmic values, since our data is extremely unequally distributed (many low values and few outliers, with high values). The data is then shown as a choropleth map.
In order to recognize the origin of the tourists at a glance, we have inserted a barplot that shows the origin of the tourists for the respective period by continent. The user can choose whether to display absolute data or data normalized with the number of inhabitants. As Switzerland has a very high number of overnight stays per 100 thousand inhabitants, the user can also choose whether the overnight stays of domestic tourism should also be displayed.
The evolution of the total number of overnight stays is also displayed. This display changes to the respective region the user has selected and depending whether the user chose annual or monthly scale will show the yearly or monthly values. This plot is great to understand the seasonality of the overnight stays.
We started with early sketches of our planned visualization, which we presented and got feedback on. Afterwards we started to implement these sketches. We first tried to visualize our data with different softwares and landed on RShiny, since it works well with our data structure and has the options to fully customize everything to our wishes. An initial version was presented and received feedback and building up on this the Shiny App got fully implemented. In a final presentation we received feedback again and according to this and tester feedback the last revisions were: