Let’s eat our way through Berlin

Happy 2020! This is Ivan, team lead developer here at Datawrapper. I have the honor of writing this year’s first Weekly Chart. Let’s start the year with a topic that everyone appreciates: food. If you’ve made a New Year’s resolution to eat less, now is a good time to stop reading, because I’ll talk about my top spots for eating out in Berlin.

There is a bit of a running joke at the Datawrapper office, whereby my colleagues assume that I’ve been to every restaurant in Berlin and ask me for recommendations for places to eat out. I’m not entirely sure where it originated from. I happen to have lived close to the current Datawrapper office for a while now, so I think I’ve just had the time to try out lots of places. (Okay, maybe I’m a bit of a food snob too.)

In any case, I created a map which lists some of my favorite restaurants and cafés in the neighborhood:

Map choices

I created the map with our Locator Map tool. Locator maps are perfect for making maps with local points of interest. It’s very easy to get started with locator maps since you don’t need to prepare any data in advance: if you have an idea, just create a new map, put down some markers and get creative straight away. You can search for locations directly in the marker step of the locator map editor, or paste links from Google Maps. Our recent changes in pricing also mean that anyone can create and publish locator maps at will, with no view restrictions!

Since my map features lots of markers, I used connecting lines between the marker and the label in some cases. This is a very useful feature when space on the map gets crowded. I also included additional information about each location in a tooltip that gets shown when you hover or click on the location.

In the additional information, I included two metrics for each location:

  1. Average rating. I calculated it by aggregating ratings from Google, Facebook, Tripadvisor, and Yelp. This is by no means an objective value (because of the nature of ratings) or even accurate (some locations had hundreds or reviews whereas others only had one or none at all), but I thought it would be fun to include it.[1]

  2. Price category. I roughly based this metric around Google’s price category listings. When looking through Google’s data however, I noticed that I strongly disagreed with some values, so I ended up adjusting them. So these are my subjective categories.[2] Interestingly, it turned out that most locations I picked fall under €€, so they are neither too cheap, nor too expensive. I guess that means I normally like to keep within a certain pricing range when eating out.

Some issues I was facing

One of the problems I encountered was the inability to easily ** categorize the locations**. If I assigned a color to every type of cuisine represented on the map, I would end up with rainbow colors. I wanted to avoid this, as it would lead to a cognitive overload for the viewer. Instead, I picked a few categories into which several listed locations fit: vegan food, Asian food, café, etc. The categories are not semantically related but might help draw a viewer to a particular spot, for example, if you want to quickly find vegan food.

Another issue was that the map didn’t work well on small device screens since it’s impossible to fit so much information into so little space.

To partially solve this issue I chose to hide some of the locations on narrower screens in the marker settings (by default each marker is shown on all screens, but you can choose to display it only on desktop or only on mobile). Unfortunately, this means that the viewer won’t get the full “experience” on a mobile device.

In the end, I also created a table which lists all locations. This is a good way to deal with the narrow screen problem, since all content from the table is visible even on narrow screens. At the same time, it’s a nice addition for wider screens too, because it shows all texts without forcing the viewer to hover or click on the map markers to reveal them. You can also sort locations by average rating or price category and search through the whole table!

I hope you enjoyed the map whether you live in Berlin or not, maybe it will help you find a spot to have lunch next time you visit the area. Enjoy the start of 2020 and we’ll see you next week!

  1. At first I considered using various APIs to obtain location ratings, but I quickly realized that APIs from at least some of the services I wanted to include are heavily restricted. For example, you can’t simply create an account and start querying the Yelp and Tripadvisor APIs – you first need to submit a request and go through a review process to be granted access. This kind of makes sense, because the whole business model of these services is based on accumulating data, so they don’t want to give it away lightly. In the end, I resorted to manually extracting the rating for each location. ↩︎

  2. The price category compares each location to other locations in the same class. So, for example, the ice-cream parlor Hokey Pokey is listed as €€€ (the maximum), but it doesn’t mean that it’s more expensive than most other locations I listed. It means that it’s more expensive than most other ice-cream parlors in Berlin. ↩︎