| | from .html import spec_to_html |
| |
|
| |
|
| | def spec_to_mimebundle( |
| | spec, |
| | format, |
| | mode=None, |
| | vega_version=None, |
| | vegaembed_version=None, |
| | vegalite_version=None, |
| | **kwargs, |
| | ): |
| | """Convert a vega/vega-lite specification to a mimebundle |
| | |
| | The mimebundle type is controlled by the ``format`` argument, which can be |
| | one of the following ['html', 'json', 'png', 'svg', 'pdf', 'vega', 'vega-lite'] |
| | |
| | Parameters |
| | ---------- |
| | spec : dict |
| | a dictionary representing a vega-lite plot spec |
| | format : string {'html', 'json', 'png', 'svg', 'pdf', 'vega', 'vega-lite'} |
| | the file format to be saved. |
| | mode : string {'vega', 'vega-lite'} |
| | The rendering mode. |
| | vega_version : string |
| | The version of vega.js to use |
| | vegaembed_version : string |
| | The version of vegaembed.js to use |
| | vegalite_version : string |
| | The version of vegalite.js to use. Only required if mode=='vega-lite' |
| | **kwargs : |
| | Additional arguments will be passed to the generating function |
| | |
| | Returns |
| | ------- |
| | output : dict |
| | a mime-bundle representing the image |
| | |
| | Note |
| | ---- |
| | The png, svg, pdf, and vega outputs require the altair_saver package |
| | to be installed. |
| | """ |
| | if mode not in ["vega", "vega-lite"]: |
| | raise ValueError("mode must be either 'vega' or 'vega-lite'") |
| |
|
| | if mode == "vega" and format == "vega": |
| | if vega_version is None: |
| | raise ValueError("Must specify vega_version") |
| | return {"application/vnd.vega.v{}+json".format(vega_version[0]): spec} |
| | if format in ["png", "svg", "pdf", "vega"]: |
| | try: |
| | import altair_saver |
| | except ImportError: |
| | raise ValueError( |
| | "Saving charts in {fmt!r} format requires the altair_saver package: " |
| | "see http://github.com/altair-viz/altair_saver/".format(fmt=format) |
| | ) |
| | return altair_saver.render(spec, format, mode=mode, **kwargs) |
| | if format == "html": |
| | html = spec_to_html( |
| | spec, |
| | mode=mode, |
| | vega_version=vega_version, |
| | vegaembed_version=vegaembed_version, |
| | vegalite_version=vegalite_version, |
| | **kwargs, |
| | ) |
| | return {"text/html": html} |
| | if format == "vega-lite": |
| | assert mode == "vega-lite" |
| | if mode == "vega": |
| | raise ValueError("Cannot convert a vega spec to vegalite") |
| | if vegalite_version is None: |
| | raise ValueError("Must specify vegalite_version") |
| | return {"application/vnd.vegalite.v{}+json".format(vegalite_version[0]): spec} |
| | if format == "json": |
| | return {"application/json": spec} |
| | raise ValueError( |
| | "format must be one of " |
| | "['html', 'json', 'png', 'svg', 'pdf', 'vega', 'vega-lite']" |
| | ) |
| |
|