加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 如何将图形传奇带到前面?

发布时间:2020-12-16 23:46:12 所属栏目:Python 来源:网络整理
导读:我有一系列子图,其中每个子图都有一个图例,我希望在每个子图之外与相邻的子图重叠.问题在于,传说是在自己的情节“顶部”,但低于邻近的情节.传说不会将zorder作为参数,所以我不确定如何解决问题.这是我用过的代码: import matplotlib.pyplot as pltimport nu

我有一系列子图,其中每个子图都有一个图例,我希望在每个子图之外与相邻的子图重叠.问题在于,传说是在自己的情节“顶部”,但低于邻近的情节.传说不会将zorder作为参数,所以我不确定如何解决问题.这是我用过的代码:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0,2 * np.pi,400)
y = np.sin(x ** 2)

f,((ax1,ax2),(ax3,ax4)) = plt.subplots(2,2,sharex='col',sharey='row')
f.subplots_adjust(hspace=0.15,wspace=0.1)

for i,j in enumerate([ax1,ax2,ax3,ax4],start=1):
    j.set_title(r'%s'%i)

ax1.plot(x,y,label='curve')
ax2.scatter(x,y)
ax3.scatter(x,2 * y ** 2 - 1,color='r')
ax4.plot(x,color='r')

bbox=(1.3,1.)
ax1.legend(loc=1,bbox_to_anchor=bbox)
plt.savefig('example.png')

enter image description here

最佳答案
Legend不接受zorder参数,但是axis对象会:

你可以试试:

ax2.set_zorder(-1)

所以ax2落后于ax1.

或者,您可以将ax1向前推进:

ax1.set_zorder(1)

并且由于您的图例是ax1的对象,它会将图例(ax1)置于第二个图的顶部.

HTH

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读