<p>我们的想法是在同一个位置创建三个子块。为了确保它们被识别为不同的图,它们的属性需要不同——而实现这一点的最简单方法就是提供不同的标签<code>ax=fig.add_subplot(111, label="1")</code>。</p>
<p>剩下的只是调整所有的轴参数,这样得到的图看起来很吸引人。
设置所有参数有点麻烦,但下面的操作应该可以满足您的需要。</p>
<p><a href="https://i.stack.imgur.com/qHFE8.png" rel="noreferrer"><img src="https://i.stack.imgur.com/qHFE8.png" alt="enter image description here"/></a></p>
<pre><code>import matplotlib.pyplot as plt
x_values1=[1,2,3,4,5]
y_values1=[1,2,2,4,1]
x_values2=[-1000,-800,-600,-400,-200]
y_values2=[10,20,39,40,50]
x_values3=[150,200,250,300,350]
y_values3=[10,20,30,40,50]
fig=plt.figure()
ax=fig.add_subplot(111, label="1")
ax2=fig.add_subplot(111, label="2", frame_on=False)
ax3=fig.add_subplot(111, label="3", frame_on=False)
ax.plot(x_values1, y_values1, color="C0")
ax.set_xlabel("x label 1", color="C0")
ax.set_ylabel("y label 1", color="C0")
ax.tick_params(axis='x', colors="C0")
ax.tick_params(axis='y', colors="C0")
ax2.scatter(x_values2, y_values2, color="C1")
ax2.xaxis.tick_top()
ax2.yaxis.tick_right()
ax2.set_xlabel('x label 2', color="C1")
ax2.set_ylabel('y label 2', color="C1")
ax2.xaxis.set_label_position('top')
ax2.yaxis.set_label_position('right')
ax2.tick_params(axis='x', colors="C1")
ax2.tick_params(axis='y', colors="C1")
ax3.plot(x_values3, y_values3, color="C3")
ax3.set_xticks([])
ax3.set_yticks([])
plt.show()
</code></pre>