observablehq / observablehq/plot
An easier way to format percent change?
Open
Nobody has claimed this yet.
enhancement
question
- Dominant language
- HTML
- Stars
- 5.4k
- Forks
- 244
- PR merge metrics
- No merged PRs in 30d
Description
The y.tickFormat here is a little complicated, especially because it requires hard-coding a precision.
Plot.plot({
y: {
type: "log",
tickFormat: (f => d => f(d - 1))(d3.format("+.0%"))
},
marks: [
Plot.ruleY([1]),
Plot.line(aapl, Plot.normalizeY({x: "date", y: "close"}))
]
})
Related, we still need to fix https://github.com/d3/d3-scale/issues/42.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the y.tickFormat example in the issue and review how d3.format and the related d3-scale issue affect percent-change formatting. Define the intended easier API and verify that it avoids hard-coded precision while preserving the plotted percent-change behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- d3js, javascript
- Domain
- data-visualization
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100