Currently, I'm making a map that depicts the migration flows of people who have finished their university degrees and decide to move to a different Dutch city after their studies. By following Anita Graser's blog post and Konrad M. Lawson's tutorial, I've so far made the following map:

enter image description here

If you look closely, then perhaps one can see that for four locations, I've made duplicate points that are almost at the exact same location as the original cities. These duplicates are in Groningen (in the North), the center of the Randstad (in the West), Tilburg (South), and Maastricht (South East). I've made these duplicates because I also would like to show the amount of students that decide to remain within the same cities upon graduation. The intra-city or intra-regional migration is something I'd like to depict by means of looped arrows.

However, I don't have much success so far with creating these loops. Here is what I've made so far in the West:

enter image description here

One can only see this arrow upon close examination. However, I want people to be able to see it at the same zoom level as the first image, and I'd like it to look like a loop. Something like this is what I'm imagining:

enter image description here

The best idea I can come up with so far is to manually add centroids for the arrows at locations in such a way that the arrows have to make a big detour or a loop. I'm not quite sure how to create these arrows though. On Graser's blog, the following code is used in the geometry generator of the arrows in the virtual layer to adjust them all at once:

      buffer(start_point($geometry), 0.01)
   buffer(end_point( $geometry), 0.01)

So my question is: how to manually adjust the coordinates of each individual centroid of every arrow in such a way that loops can be made?

  • 2
    It might be simpler to create an SVG icon of the arrow-loop, to display it on top of your city (possibly with an offset of 1/2 the icon size) and to size it accordingly to your attribute
    – JGH
    Nov 9, 2020 at 13:15
  • Another suggestion: you could use a bar chart to represent the number of students that did not change location. It would be probably a better choice as an arrow loop implies some kind of movement (even though circular), whereas in this case, there is no movement implied. The map would be probably more readable for users.
    – Babel
    Nov 9, 2020 at 13:28
  • @JGH Thank you for your suggestion. Could you please elaborate on the work flow that is involved? For instance, how would one create an SVG icon of the arrow loop in QGIS?
    – Max Muller
    Nov 9, 2020 at 13:59
  • @babel Thank you for your suggestion, too. That's certainly an option I will consider as well.
    – Max Muller
    Nov 9, 2020 at 14:00
  • @MaxMuller there are some tutorials on SVGs online, give it a try first. Then search this site for qgis keywords in svg (like this post
    – JGH
    Nov 9, 2020 at 14:04


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.