Is there a way to manually place labels in QGIS?

I have a map which has almost-duplicate labels in some places (e.g. E 1st St and 1st St) and I'd like to remove some of them.

Also, I'd like to move some of the labels around and maybe label some features that aren't currently.

I'm using new labeling, with the labels curved along the features.


Yes, it's possible to manually place labels using the labeling tools in the label toolbar:

  • move label tool … move text labels to a new position
  • rotate label tool … allows for interactive rotation of labels
  • label property tool … opens a dialog where users can manipulate the properties and text of a label

BUT you won't be able to have curved labels anymore if you move/rotate the labels manually, as far as I know.

These tools allow you to mix fixed label positions and automatic label positioning inside a project. If the x or y attribute value is NULL, the position will be set automatically. When a label position is changed using “move label tool”, the position is written into the attribute fields and the label position for this feature is fixed.

To use these tools on existing layers, add x, y and rotation attribute fields (type double/real). By default, all values will be NULL and thus the layer will be labeled automatically. Now you’re ready to move and rotate the labels as you like. (Editing needs to be enabled while working with these tools!)

  • 2
    Hi underdark, do you agree that such implementation to allow move/rotate labels is at least... cumbersome? Without speaking that if you an attribute for rotation already filled, then labels will rotate automatically only if the x/y attributes are already filled too... and in normal cases this means to move by hand any label to have it rotate accordingly. – Giovanni Manghi Feb 2 '12 at 10:23
  • 1
    Sure it's not perfect. I would expect that it shouldn't be too much work to have auto-rotation combined with manual placement at least. A little funding should make that possible. – underdark Feb 2 '12 at 10:28
  • You can actually use the label property tool on curved labels; the other ones don't work. – mattwigway Feb 2 '12 at 23:54
  • I've added x, y and rotation attribute fields (type real) and enabled editing, but the move and rotate tools are greyed out, as are the corresponding fields in Labeling Advanced. What am I missing? (QGIS 1.8.0 Mac) – johnsankey Apr 3 '13 at 16:37
  • 2
    When creating the new fields, don't accept the default width of 1. Use some like width 20, precision 4 – Llaves Dec 29 '13 at 20:08

In QGIS 2.0 , for the layer whose labels you would like to manipulate:

  1. Open the attribute table and toggle to editing mode.
  2. Add the following columns, all of whose "type" should be selected as "decimal number (real)": "x", "y", & "rotation"
  3. Right click the layer name you wish to label in the "layers" menu and click "Labels"> "Placement".
  4. Locate the "Data Defined" panel. Click on the icon that appears next to "X", point to "field type:" and choose the "x" column that you just created.
  5. Repeat step four for the "Y" and "Rotation" selections.
  6. Ensure that your label toolbar is activated (View>Toolbars>Labels).

If the "move label", "rotate label", and "change label" icons were greyed out before, they should now appear in color and be usable.

  • 1
    Please reference gis.stackexchange.com/a/67546/6725 for more information, or the manual. Removing duplicates by deleting the associated text is destructive and should probably be avoided, unless that's the preferred result. Consider using the new Show/Hide tool or just its associated Show Label data defined setting. – dakcarto Oct 8 '13 at 4:21
  • Ah, good to know! Will remove that piece from my answer. – Darin Oct 8 '13 at 11:41
  • @Darin FYI I found in QGIS 2.14-15 LTR my labels for points were not visible if I have X, Y and rotation attributes, type: decimal number real. Where in Labels -> Placement the X, Y and rotation icons were matched to the X, Y and rotation attributes. If only the rotation attribute was matched in labels -> Placement this seemed to work. I can add another answer but I think could just adjust your answer accordingly to cover the updated QGIS version. You might be able to have the X and Y attributes as well, but I deleted the redundant columns. – maskin Jun 13 '17 at 14:42

I think there is a bug when using Move labels while in "use rule based labeling" mode in Qgis 2.12.1 Lyon on Windows.

Move labels remained greyed out. Move label works with normal labeling mode.

  • 2
    I am also experiencing this bug on QGIS 2.14.3 on Debian Stretch. 'Move label' remains greyed-out despite activating data defined placement on a properly set up layer. – Valerie Anderson Jul 12 '16 at 23:11
  • 1
    Can someone please provide an update on this? I am running 2.18.8. My label tools remain grayed out after creating x,y, & rotation fields. I cannot find a way to turn rule-based labeling on & off. – TVZ Jul 5 '17 at 18:58
  • Remember, if you're storing X, Y, and Rotation fields into your attributes table, you need to activate editing for that layer (the yellow pencil) before you can move/rotate any labels. Activating editing will turn on the label manipulation icons. – D. Waschow Sep 15 '17 at 18:16

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.