Як я можу повернути незначні галочки лише на осі y на лінійному чи лінійному графіку?
Коли я використовую функцію, minor_ticks_on
щоб увімкнути незначні галочки, вони з’являються як на осі x, так і на y.
Відповіді:
Неважливо, я це зрозумів.
ax.tick_params(axis='x', which='minor', bottom=False)
MatplotlibDeprecationWarning
для використання bottom='off'
. Мабуть, ax.tick_params(axis='x',which='minor',bottom=False)
слід використовувати замість цього.
Ось ще один спосіб, який я знайшов у документації matplotlib :
import numpy as np
from matplotlib import pyplot as plt
from matplotlib.ticker import MultipleLocator
a = np.arange(100)
ml = MultipleLocator(5)
plt.plot(a)
plt.axes().yaxis.set_minor_locator(ml)
plt.show()
Це дозволить розмістити незначні галочки лише на осі y, оскільки незначні галочки вимкнені за замовчуванням.
plt.axes().yaxis.set_minor_locator(MultipleLocator(5))
замість першої ініціалізації ml
. Якщо ви використаєте повторно, ml
це може призвести до жахливих помилок, які важко знайти. Крім того, природніший вибір може бути, AutoMinorLocator
якщо не вимагається щось конкретне.
Щоб встановити незначні галочки в спеціальних місцях:
ax.set_xticks([0, 10, 20, 30], minor=True)
Щоб пояснити процедуру відповіді @ emad, кроки для показу незначних галочок у місцях за замовчуванням:
Мінімальний приклад:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
plt.plot([1,2])
# Currently, there are no minor ticks,
# so trying to make them visible would have no effect
ax.yaxis.get_ticklocs(minor=True) # []
# Initialize minor ticks
ax.minorticks_on()
# Now minor ticks exist and are turned on for both axes
# Turn off x-axis minor ticks
ax.xaxis.set_tick_params(which='minor', bottom=False)
Крім того, ми можемо отримати незначні галочки в місцях за замовчуванням, використовуючи AutoMinorLocator
:
import matplotlib.pyplot as plt
import matplotlib.ticker as tck
fig, ax = plt.subplots()
plt.plot([1,2])
ax.yaxis.set_minor_locator(tck.AutoMinorLocator())
У будь-якому випадку, отриманий графік має незначні галочки лише на осі y.
Крім того, якщо ви хочете лише незначні галочки на фактичній осі y, а не як на лівій, так і на правій частині графіка, ви можете слідувати за plt.axes().yaxis.set_minor_locator(ml)
символом plt.axes().yaxis.set_tick_params(which='minor', right = 'off')
, наприклад:
import numpy as np
from matplotlib import pyplot as plt
from matplotlib.ticker import MultipleLocator
a = np.arange(100)
ml = MultipleLocator(5)
plt.plot(a)
plt.axes().yaxis.set_minor_locator(ml)
plt.axes().yaxis.set_tick_params(which='minor', right = 'off')
plt.show()
Наступні фрагменти повинні допомогти:
from matplotlib.ticker import MultipleLocator
ax.xaxis.set_minor_locator(MultipleLocator(#))
ax.yaxis.set_minor_locator(MultipleLocator(#))
# refers to the desired interval between minor ticks.
plt.minorticks_on()