Mpld3: fig_to_html рдореЗрдВ рдмрдЧ, рд▓реЗрдЦрди рддреНрд░реБрдЯрд┐: рд╕рд░рдгреА ([ 1.]) JSON рдХреНрд░рдордмрджреНрдз рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 5 рджрд┐рд╕ре░ 2017  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mpld3/mpld3

рдпрд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХреЗрд╡рд▓ рдореИрдХ рдкрд░ imshow рдХреЗ рд╕рд╛рде рдЙрддреНрдкрдиреНрди 2D рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рдХрд▓рд░рдмрд╛рд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

mpld3.__рд╕рдВрд╕реНрдХрд░рдг__='0.3.1.dev1' (рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рднреА рд╡рд┐рдлрд▓)

matplotlib.__рд╕рдВрд╕реНрдХрд░рдг__='2.1.0'

import matplotlib.pyplot as plt, mpld3 import numpy as np fig,ax=plt.subplots(1,1) im=ax.imshow(np.zeros((100,100))) fig.colorbar(im, ax=ax) mpld3.fig_to_html(fig)

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛: рдЖрдк Lib\site-packages\mpld3 рдореЗрдВ рдкрд╛рдИ рдЧрдИ _display.py рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ NumpyEncoder рд╡рд░реНрдЧ рдХреЛ рдЗрд╕ рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ:

class NumpyEncoder(json.JSONEncoder):
    """ Special json encoder for numpy types """

    def default(self, obj):
        if isinstance(obj, (numpy.int_, numpy.intc, numpy.intp, numpy.int8,
            numpy.int16, numpy.int32, numpy.int64, numpy.uint8,
            numpy.uint16,numpy.uint32, numpy.uint64)):
            return int(obj)
        elif isinstance(obj, (numpy.float_, numpy.float16, numpy.float32, 
            numpy.float64)):
            return float(obj)
        try: # Added by ceprio 2018-04-25
            iterable = iter(obj)
        except TypeError:
            pass
        else:
            return list(iterable)
         # Let the base class default method raise the TypeError
        return json.JSONEncoder.default(self, obj)

рд╕рднреА 8 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

  • рдореБрдЭреЗ рднреА рдпрд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓реАред
  • рдЖрдкрдХрд╛ рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг рдХреНрдпрд╛ рд╣реИ?

рдореБрдЭреЗ рднреА рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИред рдореИрдВ рдЕрдЬрдЧрд░ 2.7.4, mpld3 v0.2, рдФрд░ matplotlib v2.1.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ matplotlib рдХреЗ рд╕рд╛рде рд╣реИред рдХреНрдпрд╛ matplotlib рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП mpld3 рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ?

рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛: рдЖрдк Lib\site-packages\mpld3 рдореЗрдВ рдкрд╛рдИ рдЧрдИ _display.py рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ NumpyEncoder рд╡рд░реНрдЧ рдХреЛ рдЗрд╕ рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ:

class NumpyEncoder(json.JSONEncoder):
    """ Special json encoder for numpy types """

    def default(self, obj):
        if isinstance(obj, (numpy.int_, numpy.intc, numpy.intp, numpy.int8,
            numpy.int16, numpy.int32, numpy.int64, numpy.uint8,
            numpy.uint16,numpy.uint32, numpy.uint64)):
            return int(obj)
        elif isinstance(obj, (numpy.float_, numpy.float16, numpy.float32, 
            numpy.float64)):
            return float(obj)
        try: # Added by ceprio 2018-04-25
            iterable = iter(obj)
        except TypeError:
            pass
        else:
            return list(iterable)
         # Let the base class default method raise the TypeError
        return json.JSONEncoder.default(self, obj)

Matplotlib рд╕рдВрд╕реНрдХрд░рдг 2.2.3 рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕реЗ mpld3.mpld3renderer.MPLD3Renderer.draw_path_collection рдореЗрдВ numpy arrays рд╕реЗ рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдкрд╛рдпрд╛ред

рдЕрднреА рднреА рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛

@jonashaag @ceprio рдиреЗ рдКрдкрд░ 26 рдЕрдкреНрд░реИрд▓, 2018 рдХреЛ рдЯрд┐рдкреНрдкрдгреА рдХреА, рдЕрднреА рдЗрд╕реЗ рдореЗрд░реЗ рд╕рд╛рде рдареАрдХ рдХрд┐рдпрд╛ рд╣реИред

рд╣рд╛рдп @jonashaag рдФрд░ @JupyterJones , рдХреНрдпрд╛ рдЖрдк рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ https://github.com/sciris/mpld3 рдкрд░ рднреА рдЬрд╛рд░реА рд╣реИ

@ceprio рдХреА рдЯрд┐рдкреНрдкрдгреА рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд┐рдпрд╛

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

dansteingart picture dansteingart  ┬╖  31рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

edvakf picture edvakf  ┬╖  29рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ledmonster picture ledmonster  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jakevdp picture jakevdp  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ajasja picture ajasja  ┬╖  17рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ