- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一些代码可以使用 matplotlib 在 Python 中绘制 3D 表面:
import math
import numpy as np
import matplotlib.pyplot as plt
from pylab import meshgrid,cm,imshow,contour,clabel,colorbar,axis
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import seaborn as sns
sns.set(style="white")
def surface_map(func, xmin=0, xmax=1, ymin=0, ymax=1, step_size=0.05, maxz=25000):
X, Y = meshgrid(
np.arange(xmin, xmax, step_size),
np.arange(ymin, ymax, step_size))
Z = np.zeros(X.shape)
for i in range(X.shape[0]):
for j in range(X.shape[1]):
Z[i, j] = min(func(X[i, j], Y[i, j]), maxz)
return X, Y, Z
def plot_surface(X, Y, Z, xlabel, ylabel, zlabel, title, point=None, size=25):
fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(X, Y, Z,
rstride=1, cstride=1, vmin=0, vmax=20*1000,
cmap=cm.RdBu, linewidth=0, antialiased=True)
ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
ax.set_xlabel(xlabel)
ax.set_ylabel(ylabel)
ax.set_zlabel(zlabel)
ax.set_title(title)
fig.colorbar(surf, shrink=0.5, aspect=5)
if point:
ax.hold(True)
func, fpr, recall = point
ax.scatter([fpr], [recall], [
func(fpr, recall)
], s=size, c='b', marker='.', zorder=10)
plt.show()
然后我这样调用它:
# create mesh
R, FPR, FuncValue = surface_map(my_function, xmin=0, xmax=1, ymin=0, ymax=1, step_size=0.05, maxz=20*1000)
# plot it
plot_surface(R, FPR, FuncValue,
xlabel="Recall",
ylabel="FPR",
zlabel="Function Value",
title="Recall Settings Payout Function",
point=(my_function, 0.5, 0.5))
我将 ax.scatter
设置为使用较大的标记尺寸和较高的 zorder
,但是当绘图被渲染时,表面上没有绘制任何点。
我错过了什么?
最佳答案
您正在寻找的点就在那里,但隐藏在表面“内部”。这是 matplotlib 中的一个常见问题。
我在这里看到两个选项:
alpha=.8
或类似的。 plot
代替scatter
。关于python - 在 python matplotlib 中的 plot_surface 顶部绘制单个 3D 点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41929216/
我试图了解如何构建用于 plot_surface(在 Axes3d 中)的数组。 我试图构建一个简单的表面处理这些数组的数据: In [106]: x Out[106]: array([[0, 0],
我尝试使用 Python 3 创建曲面图,现在我想知道为什么它是透明的?有任何想法吗?我希望它看起来像我使用相同数据集使用 MATLAB 创建的图 ETOPO1 .第二个问题,使用 plot_surf
我正在尝试制作 3D 绘图,因为 Wolfram 无法处理 eq.但Python似乎也有麻烦。我基本上使用了冲浪图示例:http://matplotlib.org/mpl_toolkits/mplot
我在尝试获取数据阵列的曲面图时遇到问题。 (请参阅下面的小测试数据样本)。 这是我用来测试我遇到的不同方法的基本代码。 import numpy as np import matplotlib.pyp
我正在尝试根据一组指定 z 值的数据绘制 3D 表面。尽管我设置了 alpha=1.0,但我得到了一些奇怪的透明人工制品,在那里我可以透过表面看到。 在绘图和保存到文件(png 和 pdf 格式)时都
我用 Python 中的一些数据绘制了曲面图。 现在我试图改变这样一个情节的风格。但不幸的是,我陷入了线条颜色。它默认为黑色,但我想将其设为红色或任何其他颜色。 我的代码是: from mpl_too
我已经修改了 mplot3d example code在保罗的帮助下我的申请。代码如下: from mpl_toolkits.mplot3d import Axes3D import matplotl
我正在尝试使用 matplotlib 绘制地形高程数据。我构建了一个 nx3 numpy 数组,每行包含我的点的 x、y、z 坐标(它们在 x、y 平面上的网格中有规律地间隔)。我试图用这段代码绘制它
我想将 MATLAB 中的 surf 命令转换为 matplotlib 中的 plot_surface 命令。 我面临的挑战是在 plot_surface 命令中使用 cmap 函数对曲面进行渐变
我有以下数据: https://www.dropbox.com/s/u7ee09chaixw5vb/draw?dl=0 在python3中使用pickle保存,它只是一个二维的python列表,形式为
我正在尝试做 this和我的 data具有以下结构: 0.90000000 0.90000000 -2133.80472139 0.90000000 0.95000000 -2133.84
我是 matplotlib 的新用户。使用 matplotlib 和 plot_surface 绘制曲面 (3D) 时,会出现一个带有图形的窗口。在该窗口中,右下角有鼠标实际位置的坐标。是否有可能访问
我有以下 python 代码,它显示以下 3D 图。 我的代码是: from mpl_toolkits.mplot3d import axes3d import matplotlib.pyplot a
我正在尝试使用 facecolors 以预定义的颜色为表面着色 3D。这里的问题是 cm.ScalarMappable 规范化表面 V 的颜色,而 plt.cm.jet 不规范化,因此颜色和颜色条不匹
我正在使用 MatPlotLib 的 plot_surface 方法生成 3D 表面,然后将其保存为 PDF 文件。我可以通过“linewidth=0”隐藏表面线条,但在保存为 PDF 后线条再次出现
我已经从一个文件创建了一个 3D 绘图表面,并且我正在尝试为该绘图制作动画。我已经阅读了 matplotlib 网页中的示例和 SO 中的其他示例,并注意到我需要创建一个更新函数来遍历文件中的值,然后
我有一些代码可以使用 matplotlib 在 Python 中绘制 3D 表面: import math import numpy as np import matplotlib.pyplot as
我尝试构建一个最小示例来重现我遇到的问题。请忽略随机生成的数据数组 x 和 y。我将非常有意义的数据输入到 plot_surface 内的 zSpline 调用中。您可以尝试将倒数第二行替换为 - s
我是一名优秀的程序员,十分优秀!