- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 3D 数据集 (X,Y,Z)。我想执行 KDE,绘制数据及其估计。然后,获取零交叉点并使用 KDE 绘制它。我的尝试如下。我有以下问题:
X, Y = np.mgrid[xmin:xmax:100j, ymin:ymax:100j]
和 positions = np.vstack([X.ravel(),Y. ravel(),Z.ravel()])
为 here (kde 文档)它们对可视化原始数据的真实估计有什么影响吗?我真的不明白为什么我必须使用最小值和最大值来执行 KDE,然后使用 ravel()
?为什么我必须转置 f = np.reshape(kernel(positions).T, X.shape)
代码正确吗?
我未能用 KDE 估计和 KDE 估计/零交叉的原始数据绘制原始数据:
过零应该是向量吗?在下面的代码中它是元组
df = pd.read_csv(file, delimiter = ',')
Convert series from data-frame into arrays
X = np.array(df['x'])
Y = np.array(df['y'])
Z = np.array(df['z'])
data = np.vstack([X, Y, Z])
# perform KDE
kernel = scipy.stats.kde.gaussian_kde(data)
density = kernel(data)
fig, ax = plt.subplots(subplot_kw=dict(projection='3d'))
x, y, z = data
scatter = ax.scatter(x, y, z, c=density)
xmin = values[0].min()
xmax = values[0].max()
ymin = values[1].min()
ymax = values[1].max()
zmin = values[2].min()
zmax = values[2].max()
X,Y, Z = np.mgrid[xmin:xmax:100j,ymin:ymax:100j,zmin:zmax:100j]
positions = np.vstack([X.ravel(),Y.ravel(),Z.ravel()])
f = np.reshape(kernel(positions).T, X.shape)
derivative = np.gradient(f)
dz, dy, dx = derivative
xdiff = np.sign(dx) # along X-axis
ydiff = np.sign(dy) # along Y-axis
zdiff = np.sign(dz) # along Z-axis
xcross = np.where(xdiff[:-1] != xdiff[1:])
ycross = np.where([ydiff[:-1] != ydiff[1:]])
zcross = np.where([zdiff[:-1] != zdiff[1:]])
Zerocross = xcross + ycross + zcross
最佳答案
line
X, Y = np.mgrid[xmin:xmax:100j, ymin:ymax:100j]
andpositions = np.vstack([X.ravel(),Y.ravel(),Z.ravel()])
as here (kde documentation) will they have any effects in visualising the real estimation for the original data?. I don't really understand why I have to use mymin
andmax
to perform KDE and then useravel()
?
这两行设置了一个由 x、y、z 位置组成的网格,KDE 将在其中进行评估。在上面的代码中,它们仅用于估计核密度函数的导数。由于它们目前没有用于与绘图相关的任何内容,因此它们不会影响可视化。
xmin
、xmax
等用于确保网格覆盖数据中 x、y、z 值的全部范围。语法 xmin:xmax:100j
相当于 np.linspace(xmin, xmax, 100)
,即 np.mgrid
返回 xmin
和 xmax
之间的 100 个均匀间隔的点。
np.mgrid
返回的 X
、Y
和 Z
数组各自具有形状 (100, 100, 100)
,而 kernel(positions)
的 positions
参数需要为 (n_dimensions, n_points)
。 np.vstack([X.ravel(),Y.ravel(),Z.ravel()])
行只是将 np.mgrid
的输出 reshape 为:形式。 .ravel()
将每个 (100, 100, 100)
数组展平为 (1000000,)
向量,并且 np.vstack
将它们连接到第一个维度以形成一个 (3, 1000000)
点数组。
why I have to transpose the data in
f = np.reshape(kernel(positions).T, X.shape)
你不:-)。 kernel(positions)
的输出是一个一维向量,因此转置它不会产生任何效果。
I failed to plot the original data with KDE estimation and KDE estimation/ original data with zero crossing:
你尝试了什么?上面的代码似乎估计了核密度函数梯度的零交叉,但不包含任何绘制它们的代码。你想创作什么样的情节?
Should zero crossings be vector ?. In the code below it's tuple
当您调用np.where(x)
时其中 x 是多维数组,您将返回一个包含索引的元组,其中 x 不为零。由于 xdiff[:-1] != xdiff[1:]
是一个 3D 数组,因此您将返回一个包含三个 1D 索引数组的元组,每个维度一个。
您可能不希望在 np.where([ydiff[:-1] != ydiff[1:]])
中使用额外的方括号,因为在这种情况下 [ydiff[:-1] != ydiff[1:]]
将被视为 (1, 100, 100, 100)
数组,而不是 (100, 100, 100)
,因此您将得到一个包含 4 个索引数组的元组,而不是 3 个(第一个索引数组将全为零,因为第一维的大小为 1)。
关于python - 如何在 python 中绘制 3D 数据的核密度估计 (KDE) 和零交叉?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31525393/
我正在尝试编写一个脚本,如果应用程序未运行则启动该应用程序,或者如果该窗口在当前事件中可见则激活该窗口。 使用 xdotool 或 wmctrl 我能够获取窗口列表并激活它们。如果它们没有打开,那么我
我想从 KDE Plasma 桌面环境中删除桌面选项卡并删除上下文菜单。有办法做到这一点吗? 嗨,克里斯,感谢您的回复。我正在运行 KDE 4.14.8。我没有看到你在描述什么。上下文菜单是您在桌面上
我有 CentOS 6.4,它运行的是旧版本的 Qt,可能还有其他不兼容的版本组件,这使得在机器上启动 kde 编程变得非常困难。 有没有办法一次性下载所有的依赖,让编程变得更简单? 感谢任何帮助。谢
我想开发一个 KDE Plasma 小部件,但开发人员指南告诉我获取“KDE Trunk”来开始。我有三个问题: 我宁愿不要仅仅为了开发一个简单的小部件而获得 KDE 的全部源代码。 我想为 Kubu
已关闭。这个问题是 not about programming or software development 。目前不接受答案。 这个问题似乎不是关于 a specific programming
我一直在尝试 KDE 并根据我的喜好对其进行了足够的自定义。我在每个屏幕上添加了面板和应用程序启动器,并在每个屏幕面板上显示了打开的窗口。 但是每当我从“开始菜单”或从快速启动启动应用程序时,它都会定
当我尝试制作一个按密度着色的散点图时,它需要很长时间。 可能是因为数据的长度相当大。 这基本上是我的做法: xy = np.vstack([np.array(x_values),np.array(y_
我正在尝试使用 KDE 框架在等 ionic 桌面的任务栏中显示进度。简而言之,当它复制文件时,它想做和 dolphin 一样的事情: 我有点卡住了,因为我什至不知道从哪里开始。我发现唯一有用的是KS
我正在尝试为我的新 KDE 项目编写正确的 CMakeLists.txt 文件。但是,我在使用 KDE 安装目录时遇到了一些麻烦。 我在 cmake 文件中的部分安装命令如下所示: INSTALL(T
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我在/home/user/.local/share/applications 中有这个 .desktop 文件 [Desktop Entry] Categories=AudioVideo;Video;
我想禁用kaccessible软件,而不卸载它,这样它在启动时就不会出现。而且,konsole在启动时也会自动启动,而无需我进行设置。我也不想再这样了。我需要编辑哪些文件才能实现这些功能?我试过一些方
我们在开发人员工作站上大量使用 VirtualBox。由于我们经常与其他开发人员共享图像,因此我尝试尽可能地自动化此过程(清理 ap-get 缓存、删除 tmp 和日志文件...)。顺便说一下,我们使
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
配置不同屏幕分辨率的双显示器环境的正确方法是什么? 我在两个屏幕上的字体大小非常不同,我找不到如何为每个显示器配置不同的 dpi 或其他任何东西。 提前致谢! 最佳答案 答案取决于您的特定硬件。 DP
以下简单示例返回奇异矩阵。为什么?有什么办法可以克服吗? In: from scipy.stats import gaussian_kde Out: In: points Out: (array([
我一直在尝试设置一个我想在登录时运行的服务器(以防计算机崩溃或类似情况)。 该脚本有效,它在登录时运行,但它在后台运行或在我使用 ps -A 时运行,我可以看到进程正在运行。这没关系,但服务器是交互式
关闭。这个问题是not about programming or software development .它目前不接受答案。 这个问题似乎不是关于 a specific programming
我有一组值,我想绘制高斯核密度估计,但是我遇到了两个问题: 我只有条的值,没有值本身 我正在绘制分类轴 这是我到目前为止生成的情节: y 轴的顺序实际上是相关的,因为它代表了每个细菌物种的系统发育。
KDE 升级后,我得到了一种混合语言。 通常它必须是德语,但升级后大部分 KDE 都是英语。 echo $lang 的结果类似于:de_C.UTF-8 而不是 de_DE.UTF-8 所以国家设置似乎
我是一名优秀的程序员,十分优秀!