My map is crowded with pie chart symbols that overlap and obscure each other. Is there a way to draw these symbols so they don't overlap, perhaps drawing them not in their actual location but in a nearby empty space, with a line linking them to their actual location on the map? I need to print this map, so solutions that rely on a varying zoom level won't work. I'm using QGIS 2.18.16.
Custom placement of charts using data-defined position
Step 1: Add 2 columns to the attribute table, chart_x and chart_y
Step 2: Use the new fields to control diagram position
Step 3: Use the Move Label and Diagram tool to move each chart
Editing must be enabled to use this tool. The attribute chart_x and chart_y values in the attribute table will be changed automatically when you move a diagram.
Alternative methods for step 3:
Use the coordinate capture tool to quickly find coordinates. Copy and paste the x and y values into the attribute table.
Step 4: Add a line to connect each diagram to its point
Under layer style, add a symbol layer and select geometry generator for the symbol layer type. Use this expression to draw a line between the original point and the diagram location.
make_line( make_point( $x, $y), make_point( "chart_x" , "chart_y" ))