Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MAINT: fix marker size type mismatch error #859

Merged
merged 19 commits into from
May 16, 2023
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions chaco/examples/demo/basic/scatter_1d.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,15 @@ def _create_plot_component():
alignment="left",
)

plot.plot_1d(
"value",
type="scatter_1d",
orientation="v",
marker="plus",
alignment="left",
marker_size=randint(1,5, numpts)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not the correct usage and should fail. You would need to specify a data source for the size values which holds the sizes.

)

plot.plot(
("index", "value"),
type="scatter",
Expand Down
6 changes: 4 additions & 2 deletions chaco/plots/scatterplot_1d.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

# Enthought library imports
from enable.api import black_color_trait, ColorTrait, MarkerTrait
from traits.api import Any, Bool, Callable, Enum, Float, Str
from traits.api import Any, Array, Bool, Callable, Enum, Float, Int, Str, Union

# local imports
from chaco.base_1d_plot import Base1DPlot
Expand All @@ -32,7 +32,9 @@ class ScatterPlot1D(Base1DPlot):
marker = MarkerTrait

# The pixel size of the marker, not including the thickness of the outline.
marker_size = Float(4.0)
marker_size = Union(Float, Int,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Float trait should already accept integers, so I'm not sure that it adds much to accept Int here, especially given that the marker size is conceptually a float here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I found that Float trait can accomodate int as well, just cahnged.

Array(Float), Array(Int),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't how the Array trait works - you need to supply a dtype as the argument, not a trait type. As it stands, this would accept an array with any dtype.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it, thanks!

default_value=4.0)

# The CompiledPath to use if **marker** is set to "custom". This attribute
# must be a compiled path for the Kiva context onto which this plot will
Expand Down