Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 778da39

Browse filesBrowse files
px template tests galore
1 parent c444518 commit 778da39
Copy full SHA for 778da39

File tree

Expand file treeCollapse file tree

1 file changed

+108
-0
lines changed
Filter options
  • packages/python/plotly/plotly/tests/test_core/test_px
Expand file treeCollapse file tree

1 file changed

+108
-0
lines changed

‎packages/python/plotly/plotly/tests/test_core/test_px/test_px.py

Copy file name to clipboardExpand all lines: packages/python/plotly/plotly/tests/test_core/test_px/test_px.py
+108Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,111 @@ def test_custom_data_scatter():
5151
fig.data[0].hovertemplate
5252
== "sepal_width=%{x}<br>sepal_length=%{y}<br>petal_length=%{customdata[2]}<br>petal_width=%{customdata[3]}<br>species_id=%{customdata[0]}"
5353
)
54+
55+
56+
def test_px_templates():
57+
import plotly.io as pio
58+
import plotly.graph_objects as go
59+
60+
tips = px.data.tips()
61+
62+
# use the normal defaults
63+
fig = px.scatter()
64+
assert fig.layout.template == pio.templates[pio.templates.default]
65+
66+
# respect changes to defaults
67+
pio.templates.default = "seaborn"
68+
fig = px.scatter()
69+
assert fig.layout.template == pio.templates["seaborn"]
70+
71+
# special px-level defaults over pio defaults
72+
pio.templates.default = "seaborn"
73+
px.defaults.template = "ggplot2"
74+
fig = px.scatter()
75+
assert fig.layout.template == pio.templates["ggplot2"]
76+
77+
# accept names in args over pio and px defaults
78+
fig = px.scatter(template="seaborn")
79+
assert fig.layout.template == pio.templates["seaborn"]
80+
81+
# accept objects in args
82+
fig = px.scatter(template={})
83+
assert fig.layout.template == go.layout.Template()
84+
85+
# read colorway from the template
86+
fig = px.scatter(
87+
tips,
88+
x="total_bill",
89+
y="tip",
90+
color="sex",
91+
template=dict(layout_colorway=["red", "blue"]),
92+
)
93+
assert fig.data[0].marker.color == "red"
94+
assert fig.data[1].marker.color == "blue"
95+
96+
# default colorway fallback
97+
fig = px.scatter(tips, x="total_bill", y="tip", color="sex", template=dict())
98+
assert fig.data[0].marker.color == px.colors.qualitative.D3[0]
99+
assert fig.data[1].marker.color == px.colors.qualitative.D3[1]
100+
101+
# pio default template colorway fallback
102+
pio.templates.default = "seaborn"
103+
px.defaults.template = None
104+
fig = px.scatter(tips, x="total_bill", y="tip", color="sex")
105+
assert fig.data[0].marker.color == pio.templates["seaborn"].layout.colorway[0]
106+
assert fig.data[1].marker.color == pio.templates["seaborn"].layout.colorway[1]
107+
108+
# pio default template colorway fallback
109+
pio.templates.default = "seaborn"
110+
px.defaults.template = "ggplot2"
111+
fig = px.scatter(tips, x="total_bill", y="tip", color="sex")
112+
assert fig.data[0].marker.color == pio.templates["ggplot2"].layout.colorway[0]
113+
assert fig.data[1].marker.color == pio.templates["ggplot2"].layout.colorway[1]
114+
115+
# don't overwrite top margin when set in template
116+
fig = px.scatter(title="yo")
117+
assert fig.layout.margin.t is None
118+
119+
fig = px.scatter()
120+
assert fig.layout.margin.t == 60
121+
122+
fig = px.scatter(template=dict(layout_margin_t=2))
123+
assert fig.layout.margin.t is None
124+
125+
# don't force histogram gridlines when set in template
126+
pio.templates.default = "none"
127+
px.defaults.template = None
128+
fig = px.scatter(
129+
tips, x="total_bill", y="tip", marginal_x="histogram", marginal_y="histogram"
130+
)
131+
assert fig.layout.xaxis2.showgrid
132+
assert fig.layout.xaxis3.showgrid
133+
assert fig.layout.yaxis2.showgrid
134+
assert fig.layout.yaxis3.showgrid
135+
136+
fig = px.scatter(
137+
tips,
138+
x="total_bill",
139+
y="tip",
140+
marginal_x="histogram",
141+
marginal_y="histogram",
142+
template=dict(layout_yaxis_showgrid=False),
143+
)
144+
assert fig.layout.xaxis2.showgrid
145+
assert fig.layout.xaxis3.showgrid
146+
assert fig.layout.yaxis2.showgrid is None
147+
assert fig.layout.yaxis3.showgrid is None
148+
149+
fig = px.scatter(
150+
tips,
151+
x="total_bill",
152+
y="tip",
153+
marginal_x="histogram",
154+
marginal_y="histogram",
155+
template=dict(layout_xaxis_showgrid=False),
156+
)
157+
assert fig.layout.xaxis2.showgrid is None
158+
assert fig.layout.xaxis3.showgrid is None
159+
assert fig.layout.yaxis2.showgrid
160+
assert fig.layout.yaxis3.showgrid
161+

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.