Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segment not reaching the label box when using hjust #171

Open
DasHammett opened this issue Aug 20, 2020 · 3 comments
Open

Segment not reaching the label box when using hjust #171

DasHammett opened this issue Aug 20, 2020 · 3 comments

Comments

@DasHammett
Copy link

Summary

When using hjust option to justify text, segment line does not reach the label box. Issue is not always reproducible, depends on the size of the image and the position of the label boxes.

Issue is very apparent when using labels with maps (geom_sf())

Minimal code example

# Set graph output dimension for reproducibility purposes
dev.new(width = 6, height = 12, unit = "in")

ggplot() +
  geom_label_repel(
    aes(label = "testing for segment\nelongation",
        x = c(1, 1.1),
        y = c(1, 1.1)
    ),
    min.segment.length = 0,
    hjust = 1
  ) +
  xlim(c(1,100)) +
  ylim(c(1,100))

Here is an image of the output produced by the code:

image

As you can see from the screenshot, the lower box segment is not reaching the box.
Removing hjust option renders the segment correctly

# Set graph output dimension for reproducibility purposes
dev.new(width = 6, height = 12, unit = "in")

ggplot() +
  geom_label_repel(
    aes(label = "testing for segment\nelongation",
        x = c(1, 1.1),
        y = c(1, 1.1)
    ),
    min.segment.length = 0
  ) +
  xlim(c(1,100)) +
  ylim(c(1,100))

image

Version information

Here is the output from sessionInfo() in my R session:

> sessionInfo()
R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18362)

Matrix products: default

locale:
[1] LC_COLLATE=Spanish_Spain.1252      LC_CTYPE=Spanish_Spain.1252        LC_MONETARY=Spanish_Spain.1252    
[4] LC_NUMERIC=C                       LC_TIME=English_United States.1252

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] lubridate_1.7.9 ggrepel_0.9.0   sf_0.9-5        dplyr_1.0.0     ggplot2_3.3.2  

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.5         compiler_4.0.2     pillar_1.4.6       class_7.3-17       prettyunits_1.1.1 
 [6] remotes_2.2.0      tools_4.0.2        testthat_2.3.2     digest_0.6.25      pkgbuild_1.1.0    
[11] pkgload_1.1.0      memoise_1.1.0      lifecycle_0.2.0    tibble_3.0.3       gtable_0.3.0      
[16] pkgconfig_2.0.3    rlang_0.4.7        DBI_1.1.0          cli_2.0.2          rstudioapi_0.11   
[21] curl_4.3           e1071_1.7-3        withr_2.2.0        generics_0.0.2     vctrs_0.3.2       
[26] desc_1.2.0         fs_1.5.0           devtools_2.3.1     classInt_0.4-3     tidyselect_1.1.0  
[31] rprojroot_1.3-2    grid_4.0.2         glue_1.4.1         R6_2.4.1           processx_3.4.3    
[36] fansi_0.4.1        sessioninfo_1.1.1  farver_2.0.3       purrr_0.3.4        callr_3.4.3       
[41] magrittr_1.5       units_0.6-7        backports_1.1.8    scales_1.1.1       ps_1.3.4          
[46] ellipsis_0.3.1     usethis_1.6.1      assertthat_0.2.1   colorspace_1.4-1   labeling_0.3      
[51] KernSmooth_2.23-17 munsell_0.5.0      crayon_1.3.4 
@slowkow
Copy link
Owner

slowkow commented Aug 20, 2020

Weird! Thank you for reporting this.

I never noticed this before, and I think it is a bug.

@slowkow slowkow added the bug label Aug 20, 2020
@aphalo
Copy link
Contributor

aphalo commented Jan 24, 2021

What looks like a similar problem affecting justification can be seen in some of the examples of the new position nudge functions.

@aphalo
Copy link
Contributor

aphalo commented Nov 10, 2021

@slowkow This problem seems to be related to an interaction between justification and box padding. It still exists in the code in pull request #196 as of commit 76d8ff4

library(ggplot2)
library(ggrepel)
# Set graph output dimension for reproducibility purposes
#dev.new(width = 6, height = 12, unit = "in")

ggplot() +
  geom_label_repel(
    aes(x = c(1, 1.1),
        y = c(1, 1.1)
    ),
    label = "testing for segment\nelongation",
    fill = NA,
    min.segment.length = 0,
    hjust = 1
  ) +
  xlim(c(1,100)) +
  ylim(c(1,100))

ggplot() +
  geom_label_repel(
    aes(x = c(1, 1.1),
        y = c(1, 1.1)
    ),
    label = "testing for segment\nelongation",
    fill = NA,
    min.segment.length = 0,
    hjust = 1,
    box.padding = 1
  ) +
  xlim(c(1,100)) +
  ylim(c(1,100))

ggplot() +
  geom_label_repel(
    aes(x = c(1, 1.1),
        y = c(1, 1.1)
    ),
    label = "testing for segment\nelongation",
    fill = NA,
    min.segment.length = 0,
    hjust = 1,
    box.padding = 0
  ) +
  xlim(c(1,100)) +
  ylim(c(1,100))

Created on 2021-11-10 by the reprex package (v2.0.1)

Session info
sessioninfo::session_info()
#> - Session info  --------------------------------------------------------------
#>  hash: sad but relieved face, man: medium-dark skin tone, person facepalming: medium-light skin tone
#> 
#>  setting  value
#>  version  R version 4.1.1 (2021-08-10)
#>  os       Windows 10 x64 (build 19043)
#>  system   x86_64, mingw32
#>  ui       RTerm
#>  language (EN)
#>  collate  English_Finland.1252
#>  ctype    English_Finland.1252
#>  tz       Europe/Helsinki
#>  date     2021-11-10
#>  pandoc   2.14.0.3 @ C:/Program Files/RStudio/bin/pandoc/ (via rmarkdown)
#> 
#> - Packages -------------------------------------------------------------------
#>  package     * version    date (UTC) lib source
#>  assertthat    0.2.1      2019-03-21 [1] CRAN (R 4.1.0)
#>  backports     1.3.0      2021-10-27 [1] CRAN (R 4.1.1)
#>  cli           3.1.0      2021-10-27 [1] CRAN (R 4.1.1)
#>  colorspace    2.0-2      2021-06-24 [1] CRAN (R 4.1.0)
#>  crayon        1.4.2      2021-10-29 [1] CRAN (R 4.1.1)
#>  curl          4.3.2      2021-06-23 [1] CRAN (R 4.1.0)
#>  DBI           1.1.1      2021-01-15 [1] CRAN (R 4.1.0)
#>  digest        0.6.28     2021-09-23 [1] CRAN (R 4.1.1)
#>  dplyr         1.0.7      2021-06-18 [1] CRAN (R 4.1.0)
#>  ellipsis      0.3.2      2021-04-29 [1] CRAN (R 4.1.0)
#>  evaluate      0.14       2019-05-28 [1] CRAN (R 4.1.0)
#>  fansi         0.5.0      2021-05-25 [1] CRAN (R 4.1.0)
#>  farver        2.1.0      2021-02-28 [1] CRAN (R 4.1.0)
#>  fastmap       1.1.0      2021-01-25 [1] CRAN (R 4.1.0)
#>  fs            1.5.0      2020-07-31 [1] CRAN (R 4.1.0)
#>  generics      0.1.1      2021-10-25 [1] CRAN (R 4.1.1)
#>  ggplot2     * 3.3.5      2021-06-25 [1] CRAN (R 4.1.0)
#>  ggrepel     * 0.9.1.9999 2021-11-10 [1] local
#>  glue          1.4.2      2020-08-27 [1] CRAN (R 4.1.1)
#>  gtable        0.3.0      2019-03-25 [1] CRAN (R 4.1.0)
#>  highr         0.9        2021-04-16 [1] CRAN (R 4.1.0)
#>  htmltools     0.5.2      2021-08-25 [1] CRAN (R 4.1.1)
#>  httr          1.4.2      2020-07-20 [1] CRAN (R 4.1.0)
#>  knitr         1.36       2021-09-29 [1] CRAN (R 4.1.1)
#>  labeling      0.4.2      2020-10-20 [1] CRAN (R 4.1.0)
#>  lifecycle     1.0.1      2021-09-24 [1] CRAN (R 4.1.1)
#>  magrittr      2.0.1      2020-11-17 [1] CRAN (R 4.1.0)
#>  mime          0.12       2021-09-28 [1] CRAN (R 4.1.1)
#>  munsell       0.5.0      2018-06-12 [1] CRAN (R 4.1.0)
#>  pillar        1.6.4      2021-10-18 [1] CRAN (R 4.1.1)
#>  pkgconfig     2.0.3      2019-09-22 [1] CRAN (R 4.1.0)
#>  purrr         0.3.4      2020-04-17 [1] CRAN (R 4.1.0)
#>  R.cache       0.15.0     2021-04-30 [1] CRAN (R 4.1.0)
#>  R.methodsS3   1.8.1      2020-08-26 [1] CRAN (R 4.1.0)
#>  R.oo          1.24.0     2020-08-26 [1] CRAN (R 4.1.0)
#>  R.utils       2.11.0     2021-09-26 [1] CRAN (R 4.1.1)
#>  R6            2.5.1      2021-08-19 [1] CRAN (R 4.1.0)
#>  Rcpp          1.0.7      2021-07-07 [1] CRAN (R 4.1.0)
#>  reprex        2.0.1      2021-08-05 [1] CRAN (R 4.1.0)
#>  rlang         0.4.12     2021-10-18 [1] CRAN (R 4.1.1)
#>  rmarkdown     2.11       2021-09-14 [1] CRAN (R 4.1.1)
#>  rstudioapi    0.13       2020-11-12 [1] CRAN (R 4.1.0)
#>  scales        1.1.1      2020-05-11 [1] CRAN (R 4.1.0)
#>  sessioninfo   1.2.1      2021-11-02 [1] CRAN (R 4.1.1)
#>  stringi       1.7.5      2021-10-04 [1] CRAN (R 4.1.1)
#>  stringr       1.4.0      2019-02-10 [1] CRAN (R 4.1.0)
#>  styler        1.6.2      2021-09-23 [1] CRAN (R 4.1.1)
#>  tibble        3.1.5      2021-09-30 [1] CRAN (R 4.1.1)
#>  tidyselect    1.1.1      2021-04-30 [1] CRAN (R 4.1.0)
#>  utf8          1.2.2      2021-07-24 [1] CRAN (R 4.1.0)
#>  vctrs         0.3.8      2021-04-29 [1] CRAN (R 4.1.0)
#>  withr         2.4.2      2021-04-18 [1] CRAN (R 4.1.0)
#>  xfun          0.27       2021-10-18 [1] CRAN (R 4.1.1)
#>  xml2          1.3.2      2020-04-23 [1] CRAN (R 4.1.0)
#>  yaml          2.2.1      2020-02-01 [1] CRAN (R 4.1.0)
#> 
#>  [1] C:/Users/Aphalo/Documents/R/win-library/4.1
#>  [2] C:/Program Files/R/R-4.1.1/library
#> 
#> ------------------------------------------------------------------------------

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants