Comments (3)
I did some searching and found one more callback with a similar issue: calling annotate_arrow()
then another function that runs the callback changes the arrow size.
yt/yt/visualization/plot_modifications.py
Lines 1802 to 1812 in 14c49c4
from yt.
Looks like this is because the callback overwrites the radius
attribute with a scaled version, which changes the units from length to either dimensionless value or 1/length. So when it runs back through the callback (cause calling set_font_size
invalidates the plot), the radius
attribute will be the already-scaled value with units that can't convert to dimensions of length.
if is_sequence(self.radius):
self.radius = plot.data.ds.quan(self.radius[0], self.radius[1])
self.radius = np.float64(self.radius.in_units(plot.xlim[0].units))
if isinstance(self.radius, YTQuantity):
if isinstance(self.center, YTArray):
units = self.center.units
else:
units = "code_length"
self.radius = self.radius.to(units)
# This assures the radius has the appropriate size in
# the different coordinate systems, since one cannot simply
# apply a different transform for a length in the same way
# you can for a coordinate.
if self.coord_system == "data" or self.coord_system == "plot":
self.radius = self.radius * self._pixel_scale(plot)[0]
else:
self.radius /= (plot.xlim[1] - plot.xlim[0]).v
simplest fix would be to not overwrite self.radius
. but could also add a self._scaled_radius
attribute to avoid re-calculating if it's already been through once? I'll keep playing around and push something up shortly.
from yt.
Thanks @yut23 ! I was curious if there'd be any others that failed when invalidated and run again, looks like the arrow callback fails for the same reason (storing calculations in class attributes). I'll add the fix to my current PR
from yt.
Related Issues (20)
- Volume Rendering Multiple Fields with MPI HOT 1
- [4.3.1] Test failure on i386 in test_grid_arrays_view HOT 1
- BUG: some RAMSES fields return different values depending on order of operations HOT 5
- Question/Bug: matplotlib Qt backend specification HOT 4
- ENH: Only open auxilliary files for Tipsy as needed
- unexpected output when using ParticlePhasePlot HOT 2
- OSX wheels aren't compiled with OpenMP support HOT 5
- BUG: ResourceWarnings for unclosed files in boxlib frontend HOT 2
- BUG: convert_to_cartesian from _sanitize_center fails for Geographic geometry when bbox is subset of globe
- BLD: non-isolated builds are broken
- TST: Upcoming dependency test failures HOT 1
- How to change the particle size in function "ParticlePhasePlot" HOT 2
- BUG: Multiple fields break sanitization HOT 2
- BUG: segault on manylinux2014 image HOT 5
- Deprecation warning in GDF (and maybe more?) HOT 3
- Try to project gas particles (SPH) to a mesh with octree structure HOT 2
- ImportError when compiling with gcc 14.1.1 and conda HOT 6
- DOC: docs builds are failing HOT 7
- Incorrect parameter sanitation to np.logspace HOT 2
- CPython 3.13 support (tracker issue)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yt.