vlang / vsl

V library to develop Artificial Intelligence and High-Performance Scientific Computations
https://vlang.github.io/vsl
MIT License
340 stars 46 forks source link

Implement method for `Plot` type to return `traces_with_type_json` and `layout_json` strings #179

Open ArtemkaKun opened 8 months ago

ArtemkaKun commented 8 months ago

Describe the feature

Currently, to show plot on a webpage, plot calculated JSON strings with meta/data of plot and inserts this data into HTML, which then will be shown to the user.

We need to make this process more flexible to allow users to calculate JSON data for plot separately from the whole show() logic.

Use Case

To embed plot into an already existent web page or use it wherever else.

Proposed Solution

Currently, as an experiment, I just modified plotly() method, made it public, and made it only return needed strings instead of the HTML code of the whole page.

pub fn (plot Plot) plotly() (string, string) {
    traces_with_type := plot.traces.map({
        'type':  TracesWithTypeValue(it.trace_type())
        'trace': TracesWithTypeValue(it)
    })
    traces_with_type_json := encode(traces_with_type)
    layout_json := encode(plot.layout)

    return layout_json, traces_with_type_json

}

This should be done in a smarter and better way

Other Information

No response

Acknowledgements

Version used

6904d720c50558a5d66dc97c346d9c4671213727

Environment details (OS name and version, etc.)

Not related