Маркеры в логе matplotlib figure

Я строю несколько кривых в масштабе журнала в matplotlib и, чтобы сделать их различимыми, я использую маркеры. Поскольку точек данных много, я использую markevery=100. Но с горизонтальной осью в логарифмическом масштабе, они сгруппированы. Есть ли способ вывести маркеры в логарифмическое пространство?

1 ответ

Решение

Вместо того, чтобы указывать целое число для markevery который будет размещать маркер на каждом Nth 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)

введите описание изображения здесь

Другие вопросы по тегам