Por que o matplotlib exige a configuração da escala do log antes de plt.scatter (), mas não do plt.plot ()?

Eu descobri nesteresposta útil esteplt.scatter() eplt.plot() se comporta de maneira diferente quando uma escala logrítmica é usada no eixo y.

Complot, Posso alterar para registrar a qualquer momento antes de usarplt.show(), mas o log deve ser configurado com antecedência,antes o método de dispersão é usado.

Esse é apenas um artefato histórico e irreversível no matplotlib, ou na categoria "comportamento inesperado"?

import matplotlib.pyplot as plt

X = [0.997, 2.643, 0.354, 0.075, 1.0, 0.03, 2.39, 0.364, 0.221, 0.437]
Y = [15.487507, 2.320735, 0.085742, 0.303032, 1.0, 0.025435, 4.436435,
     0.025435, 0.000503, 2.320735]

plt.figure()

plt.subplot(2,2,1)
plt.scatter(X, Y)
plt.xscale('log')
plt.yscale('log')
plt.title('scatter - scale last')   

plt.subplot(2,2,2)
plt.plot(X, Y)
plt.xscale('log')
plt.yscale('log')
plt.title('plot - scale last')   

plt.subplot(2,2,3)
plt.xscale('log')
plt.yscale('log')
plt.scatter(X, Y)
plt.title('scatter - scale first')   


plt.subplot(2,2,4)
plt.xscale('log')
plt.yscale('log')
plt.plot(X, Y)
plt.title('plot - scale first')   


plt.show()

questionAnswers(0)

yourAnswerToTheQuestion