mpld3(v 1.3.1)μ μ¬μ©νμ¬ λ‘κ·Έ μ€μΌμΌλ‘ νλ‘ν νλ λ° λ¬Έμ κ° μλ κ² κ°μ΅λλ€. μ΄ λ¬Έμ λ stackflow(http://stackoverflow.com/questions/25188903/incorrect-mpld3-plotting-in-log-scale?noredirect=1#comment39225554_25188903)μμ λ³΄κ³ λμμΌλ©° λ€λ₯Έ μ¬λμ΄ νμΈνμ΅λλ€.
κ°μ¬ ν΄μ.
-μλ
μ΄κ²μ λ²κ·Έμ²λΌ 보μ΄μ§λ§ μ μ΄λ° μΌμ΄ μΌμ΄λλμ§ λͺ¨λ₯΄κ² μ΅λλ€.
λ€μμ λ²κ·Έλ₯Ό μ¬ννλ μ΅μ μ½λ μ€λν«μ λλ€.
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)
λ§μ§λ§μΌλ‘ μΆ λ μ΄λΈμ΄ μ½κ° μ΄μν©λλ€. μλ₯Ό λ€λ©΄ λ€μκ³Ό κ°μ΅λλ€.
ν¬μΈνΈμ μμμ μ§μ νλ €λ κ²½μ°μλ μ’μ§ μμ ν΄κ²° λ°©λ²μ λλ€.
'markeredgecolor' λ° 'markerfacecolor' μΈμλ₯Ό μ¬μ©νμ¬ ν¬μΈνΈ μμμ μ€μ ν μ μμΌλ―λ‘ μ¬μ ν μ’μ ν΄κ²° λ°©λ²μ΄λΌκ³ μκ°ν©λλ€. μ°ν¬μ λΉκ΅νμ¬ νλ‘―μ μ¬μ©νμ¬ νλ‘― μ€νμΌμ κ±°μ λͺ¨λ λμΌνκ² μ μ΄ν μ μμ΅λλ€.
νλ‘― λ¬Έμ: https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.plot.html
κ·Έκ²μ μμ΄ λ²λ Έμ§ λ§ μ νν λ¬΄μ¨ λ§μΈμ§λ μλλλ€.
1) κ·νμ μ μμ λν λΉνμ΄ μλλλ€. κ·Έ μ μμ μλ κ²λ³΄λ€ λ«λ€.
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 ----------------------------------------^
λμμ΄ λκΈ°λ₯Ό λ°λλλ€. :)
κ°μ₯ μ μ©ν λκΈ
ν¨λ κΈ°λ₯μ μΆ μ€ νλκ° λ‘κ·Έ μ²λμΈ κ²½μ° μ°μ λμ λν΄μλ μλνμ§ μμ΅λλ€. μ΄κ²μ νλ‘―μ΄ μλ μ°ν¬μ λν΄μλ§ λ¬Έμ μΈ κ² κ°μ΅λλ€. ν κ°μ§ ν΄κ²° λ°©λ²μ λΆμ°ν λμ νλ‘―μ μ¬μ©νλ κ²μ λλ€.
ax.plot(x, y, marker='o', linestyle='')
보λ€λ
ax.scatter(x, y)
λ§μ§λ§μΌλ‘ μΆ λ μ΄λΈμ΄ μ½κ° μ΄μν©λλ€. μλ₯Ό λ€λ©΄ λ€μκ³Ό κ°μ΅λλ€.