Вот мой сюжет.
Я попробовал повернуть, но он все еще прикреплен.
Как мне от них отсоединиться и правильно показать?
Однако у меня также есть еще две метки по оси Y.
Если откорректировать, я хочу сделать тот же формат для всего 4 меток делений по оси Y.
Вот код.
import matplotlib.pyplot as plt
fig, ax1 = plt.subplots()
ax1.set_ylim([0, 0.7])
ax2 = ax1.twinx()
ax2.set_xticks([5, 15, 25, 35])
ax2.set_yticks([0.1156, 0.1904, 0.2062, 0.4879])
ax2.plot([5, 15, 25, 35], [0.1156, 0.1904, 0.2062, 0.4879], linewidth=2, color='black')
ax2.plot(40, 0.7)
ax2.set_yticklabels(['24', '40', '43', '103'], minor=False, fontsize=15, fontweight='bold')
Старайтесь избегать жесткого кодирования fontsize=...
и используйте fig.tight_layout()
в конце. В противном случае определите параметр figsize=(width, height)
в plt.subplots
с достаточно большой высотой, чтобы метки с заданным размером шрифта не перекрывались.
Прохладный. Это тот ответ, на который я хотел. Увеличение размера фигуры прояснило мою проблему. Спасибо.
Если вам нужно предотвратить перекрытие, вы можете либо увеличить размер фигуры (set_size_inches
), либо/и уменьшить fontsize
внутри set_yticks
:
import matplotlib.pyplot as plt
fig, ax1 = plt.subplots()
fig.set_size_inches(10, 8)
ax1.plot([5, 15, 25, 35], [0.1156, 0.1904, 0.2062, 0.4879], linewidth=2, color='black')
ax1.set_ylim([0, 0.7])
ax1.set_xlim([0, 40])
ax2 = ax1.twinx()
ax2.set_ylim([0, 0.7])
secondary_y_ticks = [0.1156, 0.1904, 0.2062, 0.4879]
secondary_y_label = [24, 40, 43, 103]
ax2.set_yticks(secondary_y_ticks , secondary_y_label, fontsize=9)
Выход:
Кажется, ты пропустил ax2.set_ylim([0, 0.7])
Спасибо за ваш комментарий. Это в файле ax1. ax1.set_ylim([0, 0,7])
Правые деления смещены вниз, поскольку самая верхняя точка для них равна 1, а верхняя точка левой оси установлена на 0,7.
@Vitalizzare, да, ты прав, сейчас исправлено.
Я добавил код. Пожалуйста, обратитесь к нему.