Skip to content

Conversation

@icweaver
Copy link
Contributor

@icweaver icweaver commented Aug 6, 2025

Documents plotting capabilities with Makie.jl

Depends on:

Based on: #165

@icweaver icweaver mentioned this pull request Aug 6, 2025
2 tasks
@github-actions
Copy link
Contributor

github-actions bot commented Aug 6, 2025

Benchmark Results (Julia v1.10)

Time benchmarks
main 7ba1bbc... main / 7ba1bbc...
Quantity/creation/Quantity(x) 3.41 ± 0.01 ns 3.41 ± 0.001 ns 1 ± 0.003
Quantity/creation/Quantity(x, length=y) 3.11 ± 0.001 ns 3.11 ± 0.001 ns 1 ± 0.00046
Quantity/with_numbers/*real 3.1 ± 0.01 ns 3.1 ± 0.01 ns 0.997 ± 0.0045
Quantity/with_numbers/^int 8.05 ± 2.2 ns 8.05 ± 2.2 ns 1 ± 0.38
Quantity/with_numbers/^int * real 8.67 ± 2.5 ns 8.67 ± 2.5 ns 1 ± 0.4
Quantity/with_quantity/+y 4.04 ± 0.001 ns 4.04 ± 0.001 ns 1 ± 0.00035
Quantity/with_quantity//y 3.41 ± 0.01 ns 3.42 ± 0.011 ns 0.997 ± 0.0043
Quantity/with_self/dimension 3.11 ± 0.01 ns 3.11 ± 0.01 ns 1 ± 0.0046
Quantity/with_self/inv 3.11 ± 0.01 ns 3.11 ± 0.001 ns 1 ± 0.0032
Quantity/with_self/ustrip 2.79 ± 0.01 ns 2.79 ± 0.01 ns 1 ± 0.0051
QuantityArray/broadcasting/multi_array_of_quantities 0.144 ± 0.0019 ms 0.141 ± 0.0011 ms 1.02 ± 0.015
QuantityArray/broadcasting/multi_normal_array 0.0538 ± 0.0031 ms 0.0537 ± 0.0031 ms 1 ± 0.081
QuantityArray/broadcasting/multi_quantity_array 0.164 ± 0.00084 ms 0.155 ± 0.0036 ms 1.06 ± 0.025
QuantityArray/broadcasting/x^2_array_of_quantities 23.8 ± 1.9 μs 23.4 ± 1.9 μs 1.02 ± 0.12
QuantityArray/broadcasting/x^2_normal_array 4.9 ± 0.72 μs 4.86 ± 0.95 μs 1.01 ± 0.25
QuantityArray/broadcasting/x^2_quantity_array 6.94 ± 0.26 μs 6.89 ± 0.28 μs 1.01 ± 0.056
QuantityArray/broadcasting/x^4_array_of_quantities 0.0816 ± 0.00053 ms 0.0815 ± 0.00055 ms 1 ± 0.0094
QuantityArray/broadcasting/x^4_normal_array 0.0498 ± 0.00018 ms 0.0498 ± 0.00018 ms 1 ± 0.0051
QuantityArray/broadcasting/x^4_quantity_array 0.053 ± 0.00018 ms 0.0499 ± 0.00019 ms 1.06 ± 0.0054
time_to_load 0.204 ± 0.0022 s 0.206 ± 0.00058 s 0.99 ± 0.011
Memory benchmarks
main 7ba1bbc... main / 7ba1bbc...
Quantity/creation/Quantity(x) 0 allocs: 0 B 0 allocs: 0 B
Quantity/creation/Quantity(x, length=y) 0 allocs: 0 B 0 allocs: 0 B
Quantity/with_numbers/*real 0 allocs: 0 B 0 allocs: 0 B
Quantity/with_numbers/^int 0 allocs: 0 B 0 allocs: 0 B
Quantity/with_numbers/^int * real 0 allocs: 0 B 0 allocs: 0 B
Quantity/with_quantity/+y 0 allocs: 0 B 0 allocs: 0 B
Quantity/with_quantity//y 0 allocs: 0 B 0 allocs: 0 B
Quantity/with_self/dimension 0 allocs: 0 B 0 allocs: 0 B
Quantity/with_self/inv 0 allocs: 0 B 0 allocs: 0 B
Quantity/with_self/ustrip 0 allocs: 0 B 0 allocs: 0 B
QuantityArray/broadcasting/multi_array_of_quantities 2 allocs: 0.382 MB 2 allocs: 0.382 MB 1
QuantityArray/broadcasting/multi_normal_array 2 allocs: 0.0763 MB 2 allocs: 0.0763 MB 1
QuantityArray/broadcasting/multi_quantity_array 2 allocs: 0.0763 MB 2 allocs: 0.0763 MB 1
QuantityArray/broadcasting/x^2_array_of_quantities 2 allocs: 0.382 MB 2 allocs: 0.382 MB 1
QuantityArray/broadcasting/x^2_normal_array 2 allocs: 0.0763 MB 2 allocs: 0.0763 MB 1
QuantityArray/broadcasting/x^2_quantity_array 2 allocs: 0.0763 MB 2 allocs: 0.0763 MB 1
QuantityArray/broadcasting/x^4_array_of_quantities 2 allocs: 0.382 MB 2 allocs: 0.382 MB 1
QuantityArray/broadcasting/x^4_normal_array 2 allocs: 0.0763 MB 2 allocs: 0.0763 MB 1
QuantityArray/broadcasting/x^4_quantity_array 2 allocs: 0.0763 MB 2 allocs: 0.0763 MB 1
time_to_load 0.153 k allocs: 14.5 kB 0.153 k allocs: 14.5 kB 1

@github-actions
Copy link
Contributor

github-actions bot commented Aug 6, 2025

Benchmark Results (Julia v1)

Time benchmarks
main 7ba1bbc... main / 7ba1bbc...
Quantity/creation/Quantity(x) 3.11 ± 0.001 ns 3.1 ± 0.01 ns 1 ± 0.0033
Quantity/creation/Quantity(x, length=y) 3.41 ± 0.01 ns 4.03 ± 0.01 ns 0.846 ± 0.0033
Quantity/with_numbers/*real 3.42 ± 0.011 ns 3.1 ± 0.01 ns 1.1 ± 0.005
Quantity/with_numbers/^int 12.1 ± 0.99 ns 12.4 ± 0.99 ns 0.975 ± 0.11
Quantity/with_numbers/^int * real 11.8 ± 1 ns 12 ± 1.1 ns 0.986 ± 0.12
Quantity/with_quantity/+y 4.04 ± 0.011 ns 4.04 ± 0.0033 ns 1 ± 0.0028
Quantity/with_quantity//y 3.42 ± 0.01 ns 3.42 ± 0.011 ns 1 ± 0.0044
Quantity/with_self/dimension 2.79 ± 0 ns 3.1 ± 0.01 ns 0.9 ± 0.0029
Quantity/with_self/inv 3.42 ± 0.001 ns 3.11 ± 0.91 ns 1.1 ± 0.32
Quantity/with_self/ustrip 3.1 ± 0.01 ns 2.79 ± 0.01 ns 1.11 ± 0.0053
QuantityArray/broadcasting/multi_array_of_quantities 0.109 ± 0.0032 ms 0.109 ± 0.0011 ms 1 ± 0.031
QuantityArray/broadcasting/multi_normal_array 0.0497 ± 0.00018 ms 0.0471 ± 0.00023 ms 1.05 ± 0.0064
QuantityArray/broadcasting/multi_quantity_array 0.0505 ± 0.0061 ms 0.05 ± 0.00055 ms 1.01 ± 0.12
QuantityArray/broadcasting/x^2_array_of_quantities 14.2 ± 3 μs 13.1 ± 1.1 μs 1.09 ± 0.25
QuantityArray/broadcasting/x^2_normal_array 2.12 ± 2.2 μs 2.05 ± 1.7 μs 1.03 ± 1.4
QuantityArray/broadcasting/x^2_quantity_array 3.47 ± 0.091 μs 3.46 ± 0.12 μs 1 ± 0.044
QuantityArray/broadcasting/x^4_array_of_quantities 0.0812 ± 0.00081 ms 0.0811 ± 0.00057 ms 1 ± 0.012
QuantityArray/broadcasting/x^4_normal_array 0.0435 ± 0.00016 ms 0.0435 ± 0.00016 ms 1 ± 0.0052
QuantityArray/broadcasting/x^4_quantity_array 0.0529 ± 0.0091 ms 0.0529 ± 0.00017 ms 1 ± 0.17
time_to_load 0.185 ± 0.00071 s 0.185 ± 0.00038 s 1 ± 0.0044
Memory benchmarks
main 7ba1bbc... main / 7ba1bbc...
Quantity/creation/Quantity(x) 0 allocs: 0 B 0 allocs: 0 B
Quantity/creation/Quantity(x, length=y) 0 allocs: 0 B 0 allocs: 0 B
Quantity/with_numbers/*real 0 allocs: 0 B 0 allocs: 0 B
Quantity/with_numbers/^int 0 allocs: 0 B 0 allocs: 0 B
Quantity/with_numbers/^int * real 0 allocs: 0 B 0 allocs: 0 B
Quantity/with_quantity/+y 0 allocs: 0 B 0 allocs: 0 B
Quantity/with_quantity//y 0 allocs: 0 B 0 allocs: 0 B
Quantity/with_self/dimension 0 allocs: 0 B 0 allocs: 0 B
Quantity/with_self/inv 0 allocs: 0 B 0 allocs: 0 B
Quantity/with_self/ustrip 0 allocs: 0 B 0 allocs: 0 B
QuantityArray/broadcasting/multi_array_of_quantities 3 allocs: 0.382 MB 3 allocs: 0.382 MB 1
QuantityArray/broadcasting/multi_normal_array 3 allocs: 0.0764 MB 3 allocs: 0.0764 MB 1
QuantityArray/broadcasting/multi_quantity_array 3 allocs: 0.0764 MB 3 allocs: 0.0764 MB 1
QuantityArray/broadcasting/x^2_array_of_quantities 3 allocs: 0.382 MB 3 allocs: 0.382 MB 1
QuantityArray/broadcasting/x^2_normal_array 3 allocs: 0.0764 MB 3 allocs: 0.0764 MB 1
QuantityArray/broadcasting/x^2_quantity_array 3 allocs: 0.0764 MB 3 allocs: 0.0764 MB 1
QuantityArray/broadcasting/x^4_array_of_quantities 3 allocs: 0.382 MB 3 allocs: 0.382 MB 1
QuantityArray/broadcasting/x^4_normal_array 3 allocs: 0.0764 MB 3 allocs: 0.0764 MB 1
QuantityArray/broadcasting/x^4_quantity_array 3 allocs: 0.0764 MB 3 allocs: 0.0764 MB 1
time_to_load 0.145 k allocs: 11 kB 0.145 k allocs: 11 kB 1

@codecov
Copy link

codecov bot commented Aug 6, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.14%. Comparing base (dfba00c) to head (7ba1bbc).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #183   +/-   ##
=======================================
  Coverage   99.14%   99.14%           
=======================================
  Files          21       21           
  Lines        1292     1292           
=======================================
  Hits         1281     1281           
  Misses         11       11           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

v0 = 250m/s
θ = deg2rad(60)
g = 9.81m/s^2
nothing # hide
Copy link
Member

Choose a reason for hiding this comment

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

Can you use ; instead of a new line with this

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Oh right, it got buried in the previous PR, but I think I was running into this when trying to do that. It's been a while though, so I'll go back and try it again

Copy link
Contributor Author

Choose a reason for hiding this comment

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

hmm, yea, still looks like no dice with @example blocks + semicolon suppression:

```@example projectile
# Can explicitly import units:
using DynamicQuantities: km, m, s, min

y0 = 10km
v0 = 250m/s
θ = deg2rad(60)
g = 9.81m/s^2;
```
image

It looks like this may be a design decision

On the flip side, we could use a @repl block if you like and output all the things equally:

```@repl projectile
# Can explicitly import units:
using DynamicQuantities: km, m, s, min

y0 = 10km
v0 = 250m/s
θ = deg2rad(60)
g = 9.81m/s^2
```
image

For completeness, the semicolon also works here, but it's probably not what we want in this case:

```@repl projectile
# Can explicitly import units:
using DynamicQuantities: km, m, s, min

y0 = 10km
v0 = 250m/s
θ = deg2rad(60)
g = 9.81m/s^2;
```
image

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hi @MilesCranmer, just bumping this last remaining open thread

@icweaver
Copy link
Contributor Author

icweaver commented Nov 25, 2025

DQ support is now in Makie v0.24.7! Will mark this PR as ready for review once things are green

Some other really cool updates in Makie + units land looks to be in the works too: MakieOrg/Makie.jl#5323

I'm def looking forward to having automatic units in label support

@icweaver icweaver marked this pull request as ready for review November 25, 2025 07:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants