plotly.R icon indicating copy to clipboard operation
plotly.R copied to clipboard

Date tickformats automatically replaces newline \n with <br>. Causing the same value on the second line to repeat.

Open ltuijnder opened this issue 3 years ago • 1 comments

Custom date tickformat does not respect the newline character \n and automatically replaces it by a break-tag <br />. This has the consequence that values after the specified newline get repeated for each tick-label even though the value is the same.

As this python plotly documentation mentions:

Date axis tick labels have the special property that any portion after the first instance of '\n' in tickformat will appear on a second line only once per unique value, as with the year numbers in the example below. To have the year number appear on every tick label, '<br>' should be used instead of '\n'.

Ploty python and javascript respect the \n but not R.

Minimal example:

library(plotly)
#> loading comments I have committed for this reprex
dt <- data.frame(
    x = as.Date(c('2013-02-04', '2013-04-05', '2013-06-06', '2013-08-07', '2013-10-02')),
    y = c(1,4,5,6,2)
  )
plot_ly(data = dt, x = ~x, y = ~y, type = 'scatter', mode = 'lines') %>%
  layout(xaxis = list(tickformat = '%a %e %b \n %Y'))

Created on 2022-03-31 by the reprex package (v2.0.1)

In specting the above object with plotly_json() and search for tickformat reveals that the format has been updated to: %a %e %b <br /> %Y.

This reprex is an example taken from the javascript documentation where the example shows the correct behaviour of only showing the year 2013 once.

image

ltuijnder avatar Mar 31 '22 08:03 ltuijnder

Here is the related SO post.

ismirsehregal avatar Apr 09 '22 10:04 ismirsehregal