Mpld3: рд▓реЙрдЧ рд╕реНрдХреЗрд▓ рдореЗрдВ рдЧрд▓рдд mpld3 рдкреНрд▓реЙрдЯрд┐рдВрдЧ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рдЕрдЧре░ 2014  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mpld3/mpld3

mpld3 (v 1.3.1) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЙрдЧ рд╕реНрдХреЗрд▓ рдореЗрдВ рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╕реНрдЯреИрдХрдлрд╝реНрд▓реЛ (http://stackoverflow.com/questions/25188903/incorrect-mpld3-plotting-in-log-scale?noredirect=1#comment39225554_25188903) рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЧрдИ рдереА рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХреА рдЧрдИ рдереАред

рдзрдиреНрдпрд╡рд╛рджред
-рд╢реЗрд▓реНрдбрди

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

рдкреИрдирд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд╕реНрдХреИрдЯрд░рдкреНрд▓реЙрдЯ рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рднреА рдХреБрд▓реНрд╣рд╛рдбрд╝реА рд▓реЙрдЧ рд╕реНрдХреЗрд▓ рдореЗрдВ рд╣реЛрддреА рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдмрд┐рдЦрд░рд╛рд╡ рдХреА рд╕рдорд╕реНрдпрд╛ рд▓рдЧрддреА рд╣реИ, рд╕рд╛рдЬрд┐рд╢ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдХрд╛рдо рдмрд┐рдЦрд░рд╛рд╡ рдХреЗ рдмрдЬрд╛рдп рднреВрдЦрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред

ax.plot(x, y, marker='o', linestyle='')

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп

ax.scatter(x, y)

рдЕрдВрдд рдореЗрдВ, рдЕрдХреНрд╖ рд▓реЗрдмрд▓ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
image

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

рдпрд╣ рдПрдХ рдмрдЧ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдпрд╣рд╛рдВ рдХреЛрдб рдХрд╛ рдПрдХ рдиреНрдпреВрдирддрдо рд╕реНрдирд┐рдкреЗрдЯ рд╣реИ рдЬреЛ рдмрдЧ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ:

import matplotlib.pyplot as plt
import mpld3

x = [1, 10, 100, 1000]
y = [1, 10, 100, 1000]
ax = plt.subplot(xscale='log', yscale='log')
ax.scatter(x, y)
mpld3.show()

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрде рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдЕрдиреБрд╡рд╛рдж/рдСрдлрд╕реЗрдЯ рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдХреБрдЫ рд╕рдВрдмрдВрдз рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИред

рдЗрд╕рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдкреИрдирд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд╕реНрдХреИрдЯрд░рдкреНрд▓реЙрдЯ рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рднреА рдХреБрд▓реНрд╣рд╛рдбрд╝реА рд▓реЙрдЧ рд╕реНрдХреЗрд▓ рдореЗрдВ рд╣реЛрддреА рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдмрд┐рдЦрд░рд╛рд╡ рдХреА рд╕рдорд╕реНрдпрд╛ рд▓рдЧрддреА рд╣реИ, рд╕рд╛рдЬрд┐рд╢ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдХрд╛рдо рдмрд┐рдЦрд░рд╛рд╡ рдХреЗ рдмрдЬрд╛рдп рднреВрдЦрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред

ax.plot(x, y, marker='o', linestyle='')

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп

ax.scatter(x, y)

рдЕрдВрдд рдореЗрдВ, рдЕрдХреНрд╖ рд▓реЗрдмрд▓ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
image

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдХреЛрдИ рдЕрдВрдХ рд░рдВрдЧрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдПрдХ рдЦрд░рд╛рдм рдХрд╛рдордХрд╛рдЬ рд╣реИред

рдЖрдк args 'markeredgecolor' рдФрд░ 'markerfacecolor' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд┐рдВрджреБ рд░рдВрдЧ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИред рд╕реНрдХреИрдЯрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд▓реЙрдЯ рдХреЗ рд╕рд╛рде рдкреНрд▓реЙрдЯ рд╢реИрд▓реА рдкрд░ рдЖрдкрдХрд╛ рд▓рдЧрднрдЧ рд╕рдорд╛рди рдирд┐рдпрдВрддреНрд░рдг рд╣реИред

рдпрд╣рд╛рдВ рдбреЙрдХреНрд╕ рдкреНрд▓реЙрдЯ рдХрд░реЗрдВ: https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.plot.html

рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдП, рд▓реЗрдХрд┐рди рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдЬреЛ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИред
рез) рдпрд╣ рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡ рдХреА рдЖрд▓реЛрдЪрдирд╛ рдирд╣реАрдВ рдереАред рд╡рд╣ рд╕реБрдЭрд╛рд╡ рдХреБрдЫ рдирд╣реАрдВ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред
2) рдореЗрд░рд╛ рдорддрд▓рдм рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреБ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд░рдВрдЧ рдореЗрдВ рд░рдВрдЧрдирд╛ рд╣реИ (рдХреБрдЫ рдореВрд▓реНрдп рдХреЗ рдЕрдиреБрд╕рд╛рд░) рдЬреИрд╕реЗ: plt.scatter(x, y, c=z) , рдФрд░ рдПрдХ colorbar рднреА рд╣реИред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ plot рдРрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╡реИрд╕реЗ рднреА, рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдЕрдЪреНрдЫреА рдмрд╛рддред рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реНрдХреИрдЯрд░ рдФрд░ рдкреНрд▓реЙрдЯ рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЖрджрд░реНрд╢ рд╣реЛрдЧрд╛ред

рдХрд╛рдордХрд╛рдЬ рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛ред рдЯрд╛рдбрд╛:

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ mpld3.plugins.PointLabelTooltip рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдХреИрдЯрд░ рдкреНрд▓реЙрдЯ рдХреЗ рдПрдХ рдмрд┐рдВрджреБ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдордБрдбрд░рд╛рддреЗ рд╕рдордп рд▓реЗрдмрд▓ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

    import mpld3
    fig, ax = plt.subplots()
    ax.set_xscale('log', basex=10) 
    # because of the log axis, the scatter plot will not work fine
    scatter = ax.scatter(x, y)
    tooltips = mpld3.plugins.PointLabelTooltip(scatter, labels=labels)
    mpld3.plugins.connect(fig, tooltips)

рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ scatter рдХреЛ plot рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд▓реЗрдмрд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдЖрдкрдХреЛ рдпрд╣рд╛рдВ рднреА рдХреБрдЫ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ:

    tooltips = mpld3.plugins.PointLabelTooltip(scatter[0], labels=labels)
    # see here ----------------------------------------^

рдЙрдореНрдореАрдж рд╣реИ рдХреА рд╡реЛ рдорджрдж рдХрд░рджреЗред :)

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