title_font broken within template layouts
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 18.8k
- Forks
- 2.8k
- Avg merge
- 16h 26m
- Merged PRs (30d)
- 21
Description
Setting title font of a figure via templates has stopped working - including the example The template layout property which simply makes the title Rockwell in Size 24.
The example below should show (in Jupyter) a blank plot with a title in Times New Roman
import plotly.express as px
import plotly.io as pio
import plotly.graph_objs as go
# we create a figure with a layout, where we only change the title_font
fig = go.Figure(layout=dict(title_font=dict(family="Times New Roman", size=24)))
# create a test template
pio.templates["test_template"] = pio.to_templated(fig).layout.template
# show a blank plot with just a title to show the template won't pull in title_font data
px.line(title="This Should Be Times New Roman", template="test_template").show()
It doesn't make a difference if we use full dictionary or magic underscore notation
title=dict(font=dict(family="Times New Roman"))
title_font=dict(family="Times New Roman")
** However **
Updating the layout of a figure, not using the template, does still work, for example
# build fig with template
# use the fig.update_layout() to update title font in layout
# This will have a title in Times New Roman
fig = px.line(title="This IS Times New Roman", template="test_template")
fig = fig.update_layout(title_font={'family':'Times New Roman'}).show()
Thank you for a great tool!
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
Run the provided Python example in Jupyter and compare the template-based figure with the direct update_layout example. Trace pio.to_templated, pio.templates, and the title_font/title.font layout paths to find why the template does not retain the font. Done means the template example renders the title in Times New Roman and the linked documentation example works again.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- jupyter-notebook, python
- Domain
- data-visualization
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100