Mpld3: PatchCollection - TypeError: array([ 1.]) JSON serializable рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдЕрдХреНрддреВре░ 2017  ┬╖  17рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mpld3/mpld3

рдореИрдВ рдкреИрдЪ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдХреБрдЫ рдкреИрдЪ рдХреЗ рдкреНрд▓реЙрдЯ рдХреЗ рд╕рд╛рде рдПрдХ .html рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдореИрдВ " https://matplotlib.org/examples/api/patch_collection.html " рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдХреЛрдИ рдХреГрдкрдпрд╛ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдзрдиреНрдпрд╡рд╛рдж,

рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

рдЯреНрд░реЗрд╕рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо):
рдлрд╝рд╛рдЗрд▓ "ttt.py", рд▓рд╛рдЗрди 55, in
htmlfil.write(mpld3.fig_to_html(рдЕрдВрдЬреАрд░))
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/dist-packages/mpld3/_display.py", рд▓рд╛рдЗрди 251, fig_to_html рдореЗрдВ
Fig_json=json.dumps(figure_json, cls=NumpyEncoder),
рдлрд╝рд╛рдЗрд▓ "/usr/lib/python2.7/json/__init__.py", рд▓рд╛рдЗрди 250, рдбрдВрдк рдореЗрдВ
Sort_keys=sort_keys, **kw).encode(obj)
рдлрд╝рд╛рдЗрд▓ "/usr/lib/python2.7/json/encoder.py", рд▓рд╛рдЗрди 207, рдПрдиреНрдХреЛрдб рдореЗрдВ
рд╡рд┐рдЦрдВрдбреВ = self.iterencode(o, _one_shot=True)
рдлрд╝рд╛рдЗрд▓ "/usr/lib/python2.7/json/encoder.py", рд▓рд╛рдЗрди 270, iterencode рдореЗрдВ
рд╡рд╛рдкрд╕реА _iterencode(o, 0)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/dist-packages/mpld3/_display.py", рд▓рд╛рдЗрди 138, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ
рд╡рд╛рдкрд╕реА json.JSONEencoder.default (рд╕реНрд╡рдпрдВ, obj)
рдлрд╝рд╛рдЗрд▓ "/usr/lib/python2.7/json/encoder.py", рд▓рд╛рдЗрди 184, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ
рдЯрд╛рдЗрдк рдПрд░рд░ рдмрдврд╝рд╛рдПрдБ (repr(o) + "JSON рдХреНрд░рдордмрджреНрдз рдирд╣реАрдВ рд╣реИ")
рд▓реЗрдЦрди рддреНрд░реБрдЯрд┐: рд╕рд░рдгреА ([ 1.]) JSON рдХреНрд░рдордмрджреНрдз рдирд╣реАрдВ рд╣реИ

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

рдореБрдЭреЗ рдЗрд╕реА рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐ рд╣реЛ рд░рд╣реА рдереАред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ matplotlib.collections.pathcollection рдиреЗ рдЕрдкрдиреЗ рд╢рдмреНрджрдХреЛрд╢ рдХреЛ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд╕рд╛рдл рдирд╣реАрдВ рдХрд┐рдпрд╛, рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реБрдиреНрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ mpld3 рдЗрди numpy рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "NumpyEncoder" рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдПрдиреНрдХреЛрдбрд░ рд╢рд┐рдХрд╛рдпрдд рдХрд░реЗрдЧрд╛ рдпрджрд┐ рдЙрджрд╛рд╣рд░рдг array рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рд╣реИред

рдареАрдХ рдХрд░:
рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ _display.py

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)
        elif isinstance(obj,(numpy.ndarray,)): #### This is the fix
            return obj.tolist()
        return json.JSONEncoder.default(self, obj)

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

рдореБрдЭреЗ рдЗрд╕реА рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐ рд╣реЛ рд░рд╣реА рдереАред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ matplotlib.collections.pathcollection рдиреЗ рдЕрдкрдиреЗ рд╢рдмреНрджрдХреЛрд╢ рдХреЛ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд╕рд╛рдл рдирд╣реАрдВ рдХрд┐рдпрд╛, рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реБрдиреНрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ mpld3 рдЗрди numpy рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "NumpyEncoder" рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдПрдиреНрдХреЛрдбрд░ рд╢рд┐рдХрд╛рдпрдд рдХрд░реЗрдЧрд╛ рдпрджрд┐ рдЙрджрд╛рд╣рд░рдг array рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рд╣реИред

рдареАрдХ рдХрд░:
рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ _display.py

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)
        elif isinstance(obj,(numpy.ndarray,)): #### This is the fix
            return obj.tolist()
        return json.JSONEncoder.default(self, obj)

рдзрдиреНрдпрд╡рд╛рдж рдЪрд╛рд╣рд┐рдП! рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдиреЗ рдореЗрд░реА save_html рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░ рджрд┐рдпрд╛ред рд╕реНрдХреИрдЯрд░ рдкреНрд▓реЙрдЯ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ "рд╕рд░рдгреА JSON serializable html рдирд╣реАрдВ рд╣реИ" рдорд┐рд▓ рд░рд╣рд╛ рдерд╛ред

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдореЗрд░реЗ рдкрд╛рд╕ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдФрд░ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рднреА рдареАрдХ рдХрд░рдирд╛ рдерд╛ред рд╡реИрд╕реЗ рднреА рдзрдиреНрдпрд╡рд╛рдж @ рдЪрд╛рд╣рд┐рдП !

рдЕрдЧрд░ рдХреЛрдИ рдПрдХ рдмрдирд╛рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдорд░реНрдЬ рдХрд░реВрдВрдЧрд╛ред рдмреЛрдирд╕ рдЕрдВрдХ рдпрджрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рд╕рднреА рдкрд╛рд╕ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ!

рд╕реБрдЭрд╛рдП рдЧрдП рдлрд┐рдХреНрд╕ рдиреЗ рднреА рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ред

рдЪреВрдВрдХрд┐ рдЬрд╛рд╡рджрдмрд╛ рдиреЗ рдЕрдкрдиреА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╕реЗ рдкреАрдЖрд░ рдирд╣реАрдВ рдмрдирд╛рдпрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЛрд╣рд░рд╛рдпрд╛ред

рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ
matplotlib==2.2.2 mpld3==0.3

рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ mpld3._display.NumpyEncoder рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдХреЗ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реВрдВ

#mpld3 hack
class NumpyEncoder(json.JSONEncoder):
    def default(self, obj):
        import numpy as np
        if isinstance(obj, np.ndarray):
            return obj.tolist()
        return json.JSONEncoder.default(self, obj)
from mpld3 import _display
_display.NumpyEncoder = NumpyEncoder

рдХреНрдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдХреЛрдИ рдкреНрд░реЛрдбрдХреНрд╢рди рдлрд┐рдХреНрд╕ рд╣реИ? рдореИрдВрдиреЗ mpld3 рдХреЛ рдкрд╛рдпрдерди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдФрд░ рдореБрдЭреЗ рд╡рд╣реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓ рд░рд╣реА рд╣реИрдВред рдЪреАрдпрд░реНрд╕!

рдпрд╣ рдлрд┐рдХреНрд╕ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓рдЧрднрдЧ 2 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ mpl3d рдХреА рд░рд┐рд▓реАрдЬрд╝ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХрдм/рдЕрдЧрд░ рдХреЛрдИ рджреВрд╕рд░рд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рд╣реИ ...

Mpld3 рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдЖрдк рдХреБрдЫ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
pip install git+git://github.com/mpld3/mpld3@master#egg=mpld3

рдпрд╛ рдЬреЛрдбрд╝реЗрдВ
git+git://github.com/mpld3/mpld3@master#egg=mpld3 рдЖрдкрдХреА requirements.txt рдлрд╝рд╛рдЗрд▓ рдореЗрдВ to

@aflaxman @jakevdp рд╢рд╛рдпрдж рдпрд╣ рдЗрд╕ рднрдВрдбрд╛рд░ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реИ:

https://help.github.com/articles/archiving-a-github-repository/

рдореИрдВрдиреЗ рдЗрд╕реЗ bokeh/bkcharts

@cliffckerr рдФрд░ рдХрдВрдкрдиреА рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реА рд╣реИ! рдЕрдЧрд░ рд╡рд╣ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдЧреНрд░рд╣ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

рдореИрдВрдиреЗ mpld3+ Django рдХреЗ рд╕рд╛рде рджрд┐рдиреЛрдВ рдХреЛ рдпрд╛рдж рдХрд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдХреЛрдИ рдорджрдж рдХрд░реВрдВрдЧрд╛ рд▓реЗрдХрд┐рди рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдЬреАрд╡рд┐рдд рд░рдЦреЗрдВ!

рдореЗрд░реЗ рдЖрдИрдлреЛрди рд╕реЗ рднреЗрдЬрд╛ рдЧрдпрд╛

14 рдЬреБрд▓рд╛ 2018, 00:01 рдкрд░, рдЕрдмреНрд░рд╛рд╣рдо Flaxman < [email protected] [email protected] > рдиреЗ рд▓рд┐рдЦрд╛:

@cliffckerr https://github.com/cliffckerr рдФрд░ рдХрдВрдкрдиреА рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реА рд╣реИ! рдЕрдЧрд░ рд╡рд╣ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдЧреНрд░рд╣ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub https://github.com/mpld3/mpld3/issues/434#issuecomment-404974279 рдкрд░ https://github.com/notifications/unsubscribe-auth/AHqXbA3CO- 1c_aiOuNnJMbFdUtE_5j1Eks5uGSaZgaJpZM4P4Xoe ред

рд╕рдмрдХреЛ рд╢реБрдХреНрд░реАрдпрд╛ред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдХреЛрдб рдХрд╛ рд░рдЦрд░рдЦрд╛рд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдореЗрд░реА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХрджрдо рд╕рд╣реА рд▓рдЧ рд░рд╣рд╛ рдерд╛ред
рдЪреАрдпрд░реНрд╕, рдорд╛рд░реНрдХред

@addinall @aflaxman @bryevdv рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ! рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдкрдиреЗ рдХрд╛рдВрдЯреЗ (https://github.com/optimamodel/mpld3) рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд░ рд╕рдм рдХреБрдЫ рд╕реНрдерд┐рд░ рд╣реЛ рдЬрд╛рдиреЗ рдкрд░ рд╣рдо рдпрд╣рд╛рдВ рд╡рд╛рдкрд╕ рд╡рд┐рд▓рдп рдХрд░ рджреЗрдВрдЧреЗред

ЁЯСН

рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ fig_to_dict() рдХреЗ рд╕рд╛рде рднреА рдореМрдЬреВрдж рд╣реИред рдЬрдм рддрдХ рд╕рд╣реА рдПрдиреНрдХреЛрдбрд░ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рддрдХ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЧрдП ndarray рдХреЗ рдХрд╛рд░рдг рд▓реМрдЯрд╛рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢ рдХреЛ json рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЖрдВрддрд░рд┐рдХ NumpyEncoder рд╡рд░реНрдЧ рдХрд╛ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред

from mpld3._display import NumpyEncoder
json.dumps(mpld3.fig_to_dict(fig), cls=NumpyEncoder)

рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ
matplotlib==2.2.2 mpld3==0.3

рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ mpld3._display.NumpyEncoder рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдХреЗ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реВрдВ

#mpld3 hack
class NumpyEncoder(json.JSONEncoder):
    def default(self, obj):
        import numpy as np
        if isinstance(obj, np.ndarray):
            return obj.tolist()
        return json.JSONEncoder.default(self, obj)
from mpld3 import _display
_display.NumpyEncoder = NumpyEncoder

рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ
matplotlib==2.2.2 mpld3==0.3

рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ mpld3._display.NumpyEncoder рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдХреЗ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реВрдВ

#mpld3 hack
class NumpyEncoder(json.JSONEncoder):
    def default(self, obj):
        import numpy as np
        if isinstance(obj, np.ndarray):
            return obj.tolist()
        return json.JSONEncoder.default(self, obj)
from mpld3 import _display
_display.NumpyEncoder = NumpyEncoder

рдЖрдкрдХрд╛ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!
рдЖрдк рдЬреАрдирд┐рдпрд╕ рд╣реИрдВ!
рдФрд░ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдЕрдЬрдЧрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирддрд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЦреБрдж рдареАрдХ рдХрд░ рдкрд╛рдпрд╛ред

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

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

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

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

pranet picture pranet  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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