ArviZ.jl
ArviZ.jl copied to clipboard
Make ArviZ.jl more Julian
Currently ArviZ.jl is mostly a wrapper of the Python package arviz, with key additional functionality to support some of Julia's PPLs. But our goal is that ArviZ.jl is also an excellent package for the Julia community. This is a super-issue to track various initiatives to meet this goal:
- Use Julia's plotting packages for plotting (#108)
- Provide native Julia implementation of
InferenceData(#128) - Separate stats and diagnostics in their own lightweight package (#129)
More suggestions:
- Way to import data from Soss
- Code a LOO importance sampling algorithm in Julia for additional speed relative to the current Python implementation
Couple more: :axe: prettyprinting of diagnostics :axe: terminal-based plotting of graphics
- Way to import data from Soss
Older versions of Soss returned samples as a vector of NamedTuples mapping variables to MonteCarloMeasurement.Particles, and we support that. #124 is tracking supporting Soss's new data structures for samples.
- Code a LOO importance sampling algorithm in Julia for additional speed relative to the current Python implementation
Yes, this would be planned as part of #129.
🪓 prettyprinting of diagnostics
Can you share some more details about what this would look like or open an issue?
🪓 terminal-based plotting of graphics
The way we would provide this is by offering plotting with Plots.jl (#108), and then one could use the UnicodePlots.jl backend to get terminal plotting. Work has begun on this at https://github.com/arviz-devs/ArviZPlots.jl. See https://twitter.com/arviz_devs/status/1359363249767030791?s=20 for early progress. UnicodePlots as a backend only supports a small subset of the Plots.jl recipes though, so this may only be useful for simple plots.
:axe: prettyprinting of diagnostics
Can you share some more details about what this would look like or open an issue?
I just think there has been movement in Julia towards modernizing the REPL experience.
:axe: terminal-based plotting of graphics
The way we would provide this is by offering plotting with Plots.jl (#108), and then one could use the UnicodePlots.jl backend to get terminal plotting. Work has begun on this at https://github.com/arviz-devs/ArviZPlots.jl. See https://twitter.com/arviz_devs/status/1359363249767030791?s=20 for early progress. UnicodePlots as a backend only supports a small subset of the Plots.jl recipes though, so this may only be useful for simple plots.
:heart: UnicodePlots :heart:
I wonder if there might be some way to reliably reduce the size of font just for REPL output that would give more resolution, haven't really looked, but I'm sure it's complicated.
I just think there has been movement in Julia towards modernizing the REPL experience.
Well right now, our diagnostics mostly are output as DataFrames.Dataframes, so we get for free whatever pretty printing DataFrames uses in Pluto, IJulia, and the REPL, but I'm open to improvements.
I wonder if there might be some way to reliably reduce the size of font just for REPL output that would give more resolution, haven't really looked, but I'm sure it's complicated.
Yes, I believe Plots with the UnicodePlots backend ignores any changes to font size because its nontrivial (not possible?) to show text with different sizes.
I'm mostly aware of PrettyTables.jl which has good visibility. Have you seen the progress bars for precompiling in v1.7? I could get an asciicinema of that if you like.
After looking I'm pretty sure that messing with font-size in a terminal to improve resolution is a crazy idea since pixelation can be modified directly.