相关疑难解决方法(0)

matplotlib中的表面图

我有一个3元组的列表,表示3D空间中的一组点.我想绘制一个覆盖所有这些点的表面.mplot3d包中的plot_surface函数需要作为参数X,Y和Z,它们是2d数组.plot_surface是绘制曲面的正确函数吗?如何将数据转换为所需格式?

data = [(x1,y1,z1),(x2,y2,z2),.....,(xn,yn,zn)]

python matplotlib

95
推荐指数
6
解决办法
20万
查看次数

使用matplotlib绘制表面/等高线图中的3元组数据点

我有一些由外部程序生成的表面数据作为XYZ值.我想使用matplotlib创建以下图形:

  • 表面图
  • 轮廓图
  • 轮廓图与表面图重叠

我已经看了几个用于在matplotlib中绘制曲面和轮廓的示例 - 但是,Z值似乎是X和Y的函数,即Y~f(X,Y).

我假设我将以某种方式需要转换我的Y变量,但我还没有看到任何示例,它显示了如何执行此操作.

所以,我的问题是:给定一组(X,Y,Z)点,如何从该数据生成表面和等高线图?

顺便说一句,为了澄清,我不想创建散点图.虽然我在标题中提到了matplotlib,但我并不反对使用rpy(2),如果这样我可以创建这些图表.

python r matplotlib rpy2

21
推荐指数
1
解决办法
3万
查看次数

从三个一维数组创建一个 3D 曲面图

我有 3 个数组,如下所示,我正在尝试从中绘制 3d 曲面图(线框或任何其他)。我已经从中创建了一个散点图,但不确定如何从 3D 曲面图的角度来处理它。任何帮助将不胜感激。

X = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, …
Run Code Online (Sandbox Code Playgroud)

python arrays plot numpy matplotlib

9
推荐指数
1
解决办法
1万
查看次数

从matplotlib中的元组列表中绘制3d表面

我试图从元组列表中绘制一个三维表面,数据如下:

[(60,5,'121'),(61,5,'103'),(62,5,'14 .8'),(63,5,'48 .5'),(64,5,'57 .5') ,(65,5,'75 .7'),(66,5,'89 .6'),(67,5,'55 .3'),(68,5,'63 .3'),(69,5,'118') ,(70,5,'128'),(71,5,'105'),(72,5,'115'),(73,5,'104'),(74,5,'134') ,(75,5,'123'),(76,5,'66 .3'),(77,5,'132'),(78,5,'145'),(79,5,'115') ,(80,5,'38 .2'),(81,5,'10 .4'),(82,5,'18 .4'),(83,5,'87'),(84,5,'86 .7') ,(85,5,'78 .9'),(86,5,'89 .9'),(87,5,'108'),(88,5,'57 .1'),(89,5,'51 .1') ,(90,5,'69 .1'),(91,5,'59 .8'),(60,6,'48 .9'),(61,6,'33 .3'),(62,6,' - 19.2' ),(63,6,' - 17.5'),(64,6,' - 6.5'),(65,6,'75 .7'),(66,6,'89 .6'),(67,6,' 55.3'),(68,6,'99 .8'),(69,6,'156'),(70,6,'141'),(71,6,'54 .1'),(72,6,' 66.1'),(73,6,'98 .9'),(74,6,'155'),(75,6,'146'),(76,6,'111'),(77,6,' 132'),(78,6,'145'),(79,6,'97 .3'),(80,6,'101'),(81,6,'59 .4'),(82,6,' 70.4'),(83,6,'142'),(84,6,'145'),(85,6,'140'),(86,6,'56 .9'),(87,6,' 77.8'),(88 ,6,'21 .1'),(89,6,'27 .1'),(90,6,'48 .1'),(91,6,'41 .8')]

数据的格式为:(X,Y,Z)

理想情况下,我希望它看起来像这样:

在此输入图像描述

我不确定如何将我的数据提供给matplotlib.

提前致谢

python matplotlib

7
推荐指数
1
解决办法
4162
查看次数

为什么 Z 必须是二维的才能在 matplotlib 中进行 3d 绘图

我正在尝试使用 matplotlibSurface plots使用此站点中的代码绘制 3d :

X、Y 和 Z 的获得如下:

from math import pi
from numpy import cos, meshgrid
alpha = 0.7
phi_ext = 2 * pi * 0.5

def flux_qubit_potential(phi_m, phi_p):
    return 2 + alpha - 2 * cos(phi_p)*cos(phi_m) - alpha * cos(phi_ext - 2*phi_p)

phi_m = linspace(0, 2*pi, 100)
phi_p = linspace(0, 2*pi, 100)
X,Y = meshgrid(phi_p, phi_m)
Z = flux_qubit_potential(X, Y).T
Run Code Online (Sandbox Code Playgroud)

并且使用以下代码完成 3d 绘图:

from mpl_toolkits.mplot3d.axes3d import Axes3D

fig = plt.figure(figsize=(14,6))

# `ax` is …
Run Code Online (Sandbox Code Playgroud)

python 3d matplotlib

7
推荐指数
2
解决办法
6442
查看次数

在不使用轮廓的情况下,从x,y,z数据集绘制的3d中的matplotlib颜色

对于我的生活,我无法弄清楚如何得到相同的结果作为.

该链接生成彩色三维图而不使用轮廓.如果我使用相同的技术,但使用我自己的x,y,z数据集,我只得到一种颜色.

区别必须是我为绘图生成z数据的方式.

无论如何,使用这个:

from mpl_toolkits.mplot3d import Axes3D
from matplotlib.mlab import griddata
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np
import sys

def xyz_ret(file):
    f = open(file, 'r')

    xyz = []
    for i in f:
        ret = i.replace('\n','')
        xyz.append(map(float,(ret.split('\t'))))

    xyz =  np.array(xyz)   
    return xyz[:,0],xyz[:,1],xyz[:,2]     


x,y,z = xyz_ret('300.txt')

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

xi = np.linspace(min(x), max(x))
yi = np.linspace(min(y), max(y))

X, Y = np.meshgrid(xi, yi)
Z = …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

6
推荐指数
2
解决办法
4万
查看次数

3D 曲面图未显示

我正在尝试使用 matplotlib 制作一个简单的 3D 曲面图,但该图最终没有显示;我只得到空的 3D 轴。

这是我所做的:

from mpl_toolkits.mplot3d import Axes3D

x = np.arange(1, 100, 1)
y = np.arange(1, 100, 1)
z = np.arange(1, 100, 1)

fig = figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x, y, z, rstride=5, cstride=5) 
show()
Run Code Online (Sandbox Code Playgroud)

...我明白了: 在此输入图像描述

有什么建议么?

python matplotlib surface matplotlib-3d

5
推荐指数
1
解决办法
2万
查看次数

如何在python中绘制多个回归3D图

我不是科学家,所以请假设我不知道有经验的程序员的行话,或者科学绘图技术的复杂性.Python是我所知道的唯一语言(初学者+,可能是中级).

任务:将多元回归的结果(z = f(x,y))绘制为3D图形上的二维平面(例如,我可以使用OSX的图形工具,或者在此处使用R 绘制回归曲面) .

经过一周搜索Stackoverflow并阅读matplotlib,seabornmayavi的各种文档后,我终于找到了最简单的方法来绘制3d表面给出的3d点,听起来很有希望.所以这是我的数据和代码:

首先尝试使用matplotlib:

shape: (80, 3) 
type: <type 'numpy.ndarray'> 
zmul: 

[[  0.00000000e+00   0.00000000e+00   5.52720000e+00]
 [  5.00000000e+02   5.00000000e-01   5.59220000e+00]
 [  1.00000000e+03   1.00000000e+00   5.65720000e+00]
 [  1.50000000e+03   1.50000000e+00   5.72220000e+00]
 [  2.00000000e+03   2.00000000e+00   5.78720000e+00]
 [  2.50000000e+03   2.50000000e+00   5.85220000e+00]
 ……]

import matplotlib
from matplotlib.ticker import MaxNLocator
from matplotlib import cm

from numpy.random import randn
from scipy import array, newaxis
Xs = zmul[:,0]
Ys = zmul[:,1]
Zs = zmul[:,2] …
Run Code Online (Sandbox Code Playgroud)

python 3d regression matplotlib mayavi

5
推荐指数
1
解决办法
4340
查看次数

标签 统计

matplotlib ×8

python ×8

3d ×2

arrays ×1

matplotlib-3d ×1

mayavi ×1

numpy ×1

plot ×1

r ×1

regression ×1

rpy2 ×1

surface ×1