47

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.

0

3 Answers 3

47

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!)

10
  • 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. Feb 2, 2012 at 10:23
  • 2
    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, 2012 at 10:28
  • You can actually use the label property tool on curved labels; the other ones don't work.
    – mattwigway
    Feb 2, 2012 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, 2013 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, 2013 at 20:08
25

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.

3
  • 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, 2013 at 4:21
  • Ah, good to know! Will remove that piece from my answer.
    – Darin
    Oct 8, 2013 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, 2017 at 14:42
2

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.

3
  • 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. Jul 12, 2016 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, 2017 at 18:58
  • 1
    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, 2017 at 18:16

Your Answer

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

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