微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Matplotlib 3d 曲面图显示轴限制之外的值

如何解决Matplotlib 3d 曲面图显示轴限制之外的值

在 matplotlib 3d-plotting plot_surface 中,即使 x、y 和 z 轴限制设置为 >=0,表面的负 z 部分仍然被绘制。二维绘图不会发生同样的情况——如果在为绘图提供的 20 个数据点中,有 10 个位于轴限制之外,例如第一象限,它们根本不会显示在绘图中。

请看下面的代码和相应的情节作为证据(代码在 Jupyter notebook 中运行)-

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
from matplotlib import cm
%matplotlib notebook

x = np.linspace(0,1.5,100)
y = np.linspace(0,100)
X,Y = np.meshgrid(x,y)
Z = 1-X-Y
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
surf = ax.plot_surface(X,Y,Z,cmap=cm.coolwarm)
ax.set_xlim(0,1.5)
ax.set_ylim(0,1.5)
ax.set_zlim(0,3)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
fig.colorbar(surf,shrink=0.5,aspect=5)
fig.savefig('Question10fig')

Above plot

蓝色以及旁边的颜色条的存在表明图中存在 z

解决方法

这似乎起源于

ax.set_zlim(0,3)

去掉这条线,我觉得这个图很好看。这似乎是 matplotlib 中的一个问题(另见 this post)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?