molten-nvim icon indicating copy to clipboard operation
molten-nvim copied to clipboard

[Feature Request] add support for `application/vnd.holoviews_load.v0+json`

Open awray3 opened this issue 1 year ago • 10 comments

Hello,

I am trying to run df.plot() on a pandas Dataframe and view the plot with Molten. Only text/plain and text/html options are returned by MoltenEvaluateLine, and :MoltenOpenInBrowser shows a blank page.

Is there a specific way I should be running plotting code in order for this to work?

awray3 avatar Jan 31 '24 21:01 awray3

If there's a text/html output it should work. I can check it out

benlubas avatar Jan 31 '24 22:01 benlubas

Here's the output of debug logs: image

No image is displayed either, even though I have image.nvim installed and configured correctly (I think) with all optional dependencies in my neovim environment (which is separate from the kernel environment)

awray3 avatar Jan 31 '24 23:01 awray3

I'm curious about the HTML mimetype b/c I don't see it. I am seeing the image though. I guess you haven't setup image.nvim correctly

image

benlubas avatar Feb 01 '24 00:02 benlubas

I can confirm I have image.nvim working (I put the neovim logo there with require('image').from_file(...)) and I've set the image.nvim config. I use Lunarvim for the base of my config, perhaps there's a conflict in some autogroup somewhere.

image

awray3 avatar Feb 01 '24 02:02 awray3

I highly doubt that it's Lunarvim interfering.

do you have you config on github that you could link for me to take a look at?

benlubas avatar Feb 01 '24 03:02 benlubas

Yes, here's my config. I'm running on kitty.

awray3 avatar Feb 01 '24 05:02 awray3

Aha, I found what was missing from the init function:

vim.g.molten_image_provider = "image.nvim"

Now plots that come back as image/png work!

Though I guess there's still the original problem. I often use hvplot which returns 'text/html' instead of 'image/png', and I'm still getting nothing from :MoltenOpenInBrowser.

awray3 avatar Feb 01 '24 05:02 awray3

I also see nothing when trying to run the following code:

import hvplot.pandas  # noqa
from bokeh.sampledata import iris

iris = iris.flowers

hvplot.plotting.andrews_curves(
    iris,
    class_column='species',
    samples=20,

There are a few hints in the browser console: image

And that in conjunction with this from their website: image

Makes me think that we need to do something extra for this to work...

benlubas avatar Feb 01 '24 20:02 benlubas

This is the special mimetype that we could support: application/vnd.holoviews_load.v0+json. I'm not sure which javascript library we need to load, or where to get it from or anything like that honestly. Do you have any idea where to look?

benlubas avatar Feb 01 '24 20:02 benlubas

I could look into it

awray3 avatar Feb 02 '24 02:02 awray3