Open
Description
Attempting to execute the following code in Ch 1 results in TypeError: must be real number, not str
:
figsize(12.5, 4)
colours = ["#348ABD", "#A60628"]
prior = [0.20, 0.80]
posterior = [1.0 / 3, 2.0 / 3]
plt.bar(
[0, 0.7],
prior,
alpha=0.70,
width=0.25,
color=colours[0],
label="prior distribution",
lw="3",
edgecolor=colours[0],
)
Changing the code to the following where lw=3 instead of '3' fixes the problem
figsize(12.5, 4)
colours = ["#348ABD", "#A60628"]
prior = [0.20, 0.80]
posterior = [1.0 / 3, 2.0 / 3]
plt.bar(
[0, 0.7],
prior,
alpha=0.70,
width=0.25,
color=colours[0],
label="prior distribution",
lw=3,
edgecolor=colours[0],
)
Matplotlib's documentation for set_linewidth states the function only expects floats; strings this may have worked in previous versions, but the current version may have broken something
def set_linewidth(self, w):
"""
Set the patch linewidth in points.
Parameters
----------
w : float or None
"""
Advise to always use numbers when setting linewidth instead of strings
Version of matplotlib: 3.7.1
Metadata
Metadata
Assignees
Labels
No labels