I have been playing with the basic label placement settings, but I'm wondering if there's a way for me to adjust the placement of individual labels?

There are a few that overlap and I'd like to be able to manually adjust them.

Or ... do I have to export an SVG and do that last step there?


There are some plugins helping on this.

I would only displace labels in the very final stage of a map production, otherwise you will have to redo it a lot of times to get the desired results!

I sometimes use "Layer to labeled layer" plugin for this. Using it, it will ask for a label field and then activates labelling for the layer. Furthermore it adds a lot of fields beginning with "Lbl..." to your attribute list and then links the label settings of your layer to these fields (You can see this from the yellowish symbols in your label properties)

These fields do not only serve to store informations about your label position, but also about font size, colours, rotation etc

Make your layer editable, and you will see that the "Move Label"-Button will become activated (because the plugin automatically set your X and Y-Coordinate settings to the new fields LblX and LblY)

enter image description here Open now a print composer and add your map, to able to see how displacing the labels will work out for your final scale.

Change to position of a label with the "Move Label" button. The label coordinates are now stored within the attributes list. Check the new position in the print composer by refreshing the cache.

[enter image description here

The nice thing is, that the rest of the labels are still placed automatically, so you really only have to move those labels which do not fit automatically.

Entering data into the other fields (e.g. via Field Calculator) will enable you to give your labels individual sizes or other font properties e.g. by defined categories.


You can use data driven position on the placement tab in the label dialog. Unfortunately for this you have to create and fill two columns (e.g. x,y) in the attribute table. If you have polygons then you can use field calculator to fill x and y e.g.

x(centroid($geometry)) y(centroid($geomety))

After this set the label position to these columns and change the coordinates in the talbe of the few overlapping labels.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.