Если я правильно понял вопрос, вы хотите twinx
ось, а @kikocorreoso говорит, но вы также хотите, чтобы сжать его, поэтому он принимает только до верхней части y.
Вы можете сделать это, просто установив ylim
больше, чем вам нужно, и явно установите yticks
. Вот пример с некоторыми случайными данными
import matplotlib.pyplot as plt
import numpy as np
data = [np.random.normal(np.random.randint(0,5),4,25) for _ in range(25)] # some random data
fig=plt.figure()
ax1=fig.add_subplot(111)
ax2=ax1.twinx()
ax1.set_ylim(-5,25)
ax2.set_ylim(0,14)
ax2.set_yticks([10,12,14]) # ticks below 10 don't show up
ax1.boxplot(data)
ax2.plot(np.linspace(0,26,50),12.+2.*np.sin(np.linspace(0,2.*np.pi,50))) # just a random line
plt.show()
Это именно то, что мне нужно. Спасибо. – fandreacci