ArviZ.jl icon indicating copy to clipboard operation
ArviZ.jl copied to clipboard

Make ArviZ.jl more Julian

Open sethaxen opened this issue 4 years ago • 6 comments
trafficstars

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)

sethaxen avatar May 17 '21 21:05 sethaxen

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

ghost avatar May 17 '21 23:05 ghost

Couple more: :axe: prettyprinting of diagnostics :axe: terminal-based plotting of graphics

ghost avatar May 17 '21 23:05 ghost

  • 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.

sethaxen avatar May 18 '21 09:05 sethaxen

: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.

ghost avatar May 18 '21 13:05 ghost

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.

sethaxen avatar May 21 '21 12:05 sethaxen

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.

ghost avatar May 21 '21 13:05 ghost