plotly / plotly/plotly.R

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

Open
#2,115 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
R
Stars
2.7k
Forks
641
PR merge metrics
No merged PRs in 30d

Description

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

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the R minimal example in issue #2115 and inspect its output with plotly_json(), focusing on how the x-axis tickformat converts \n. Compare the result with the linked JavaScript and Python behavior; done means R preserves \n so repeated date values are displayed according to the documented behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, r
Domain
data-visualization
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.