Почему matplotlib требует установки масштаба журнала перед plt.scatter (), а не plt.plot ()?
Я узнал в этомполезный ответ тотplt.scatter()
а такжеplt.plot()
ведут себя по-разному, когда логарифмический масштаб используется на оси у.
Сplot
Я могу перейти в журнал в любое время, прежде чем использоватьplt.show()
, но журнал должен быть установлен заранее,до метод разброса используется.
Это просто исторический и необратимый артефакт в matplotlib, или это категория «неожиданное поведение»?
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()