По умолчанию matplotlib дает около 5% полей с каждой стороны данных. Здесь, кажется, вы хотите увеличить этот запас для вертикального направления. Может быть, вы хотите 40%, т.е. plt.margins(y=0.4)
?
import matplotlib.pyplot as plt
x_CDS = list(range(661, 668))
y_CDS = ["CDS"] * len(x_CDS)
x_RBS = list(range(649, 656))
y_RBS = ["RBS"] * len(x_RBS)
x_prom = list(range(570, 601))
y_prom = ["Promoter"] * len(x_prom)
plt.figure(figsize=(10,6))
plt.xlabel('Nucleotide position')
plt.plot(x_CDS, y_CDS, label='CDS')
plt.plot(x_RBS, y_RBS, label='RBS')
plt.plot(x_prom, y_prom, label='Promoter')
plt.margins(y=0.4)
plt.show()
Преимущество использования margins
здесь вместо изменения ylim
состоит в том, что вам не нужно считать категории, чтобы узнать, какое полезное значение выбрать для ограничений. Но, конечно, вы можете в равной степени изменить пределы с помощью plt.ylim(-0.8,2.8)
, чтобы достичь того же графика.