首页 > 解决方案 > 有没有办法在一个命令而不是 3 个单独的行中指定 matplotlib 图中的 xy 和 z 限制?

问题描述

我正在开发一个需要在 matplotlib 中自动从 2D 切换到 3D 绘图的程序。所以我正在寻找一种方法来决定 2 和 3d 之间没有很多 if 语句

我查看了此处的帖子以及 matplotlib 文档页面,但没有找到任何内容

目前绘图轴限制是使用设置的

ax.set_xlim(minvals[0],maxvals[0])  
ax.set_ylim(minvals[1],maxvals[1])

那么如果是 3D 我有一个单独的列表

ax.set_xlim3d(min_vals[0],max_vals[0])
ax.set_ylim3d(min_vals[1],max_vals[1])
ax.set_zlim3d(min_vals[2],max_vals[2]) 

无论是 2d 还是 3d,有一种方法来拥有像 ax.set_lims(min_vals, max_vals) 这样的东西似乎是合乎逻辑的。有没有办法做到这一点?

标签: pythonmatplotlibaxes

解决方案


使用这样的方法.set(**kwargs)

ax.set(**{'xlim3d': [min_vals[0],max_vals[0]], \
          'ylim3d': [min_vals[1],max_vals[1]], \
          'zlim3d': [min_vals[2],max_vals[2]]})

通常当你想用 设置一个属性xxxx.set_xxxx(),你使用:

ax.set_xxxx(some_value)

有了.set(**kwargs)我上面的解释,当.set_xxxx(some_value)被添加时,它变成:

ax.set(**{'xlim3d': [min_vals[0],max_vals[0]], \
          'ylim3d': [min_vals[1],max_vals[1]], \
          'zlim3d': [min_vals[2],max_vals[2]], \
          'xxxx': some_value})

推荐阅读