vlang/vsl

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

ArtemkaKun opened this issue · 0 comments

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

  • I may be able to implement this feature request
  • This feature might incur a breaking change

Version used

6904d72

Environment details (OS name and version, etc.)

Not related