Маркеры в логе matplotlib figure
Я строю несколько кривых в масштабе журнала в matplotlib и, чтобы сделать их различимыми, я использую маркеры. Поскольку точек данных много, я использую markevery=100. Но с горизонтальной осью в логарифмическом масштабе, они сгруппированы. Есть ли способ вывести маркеры в логарифмическое пространство?
1 ответ
Вместо того, чтобы указывать целое число для markevery
который будет размещать маркер на каждом N
th dapapoint, используйте float, который гарантирует, что точки будут равномерно распределены вдоль линии (независимо от того, используется ли линейный или логарифмический масштаб).
каждые =0,1 (т. е. число с плавающей запятой), тогда маркеры будут располагаться на примерно равных расстояниях вдоль линии; расстояние вдоль линии между маркерами определяется путем умножения расстояния отображения координат диагональной рамки осей на значение каждого.
t = np.arange(0.01, 30, 0.01)
plt.loglog(t, 20 * np.exp(-t / 10.0), '-o', markevery=0.1)