Я строю несколько кривых в логарифмическом масштабе в matplotlib, и, чтобы сделать их различимыми, я использую маркеры. Поскольку точек данных много, я использую markevery=100. Но с горизонтальной осью в логарифмическом масштабе они группируются. Есть ли способ заставить маркеры также располагаться логарифмически?
маркеры на фигуре loglog matplotlib
Ответы (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