маркеры на фигуре loglog matplotlib

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


person user2379888    schedule 23.06.2016    source источник


Ответы (1)


Вместо указания целого числа для markevery, которое будет размещать маркер в каждой Nй точке данных, используйте число с плавающей запятой, которое гарантирует, что точки будут равномерно распределены вдоль линии (независимо от того, используется ли линейная или логарифмическая шкала).

Every=0.1, (т.е. число с плавающей запятой) тогда маркеры будут располагаться примерно на одинаковом расстоянии вдоль линии; расстояние вдоль линии между маркерами определяется путем умножения координаты отображения расстояния диагонали ограничительной рамки осей на значение каждого.

t = np.arange(0.01, 30, 0.01)
plt.loglog(t, 20 * np.exp(-t / 10.0), '-o', markevery=0.1)

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

person Suever    schedule 23.06.2016