python绘图y坐标_python让数据动起来:不要停在二维页面

开始学习Python编程的中间阶段的最好方法绝对是开始使用Python支持的库。

下面是一些您可以考虑入门学习的顶级库:

NumPy总的来说是用于科学计算的。

SciPy使用数组,例如用于线性代数、微积分和其他类似概念的基本数据结构。

Pandas用于数据帧,而Matplotlib则以图形和符号的形式显示数据。

它通过可视化展现,只是一种抽象概括。从创建前端或图形用户界面(GUI)到将数字化数据绘制为图上的点。

python绘图y坐标_python让数据动起来:不要停在二维页面_第1张图片

Matplotlib用于在图形上绘制数据点。Matplotlib是一个绘图库,可以用于Python编程语言及其数字化数学扩展库NumPy。它提供了一个面向对象的API,通过使用通用的GUI工具包(如Tkinter、wxPython、Qy或GTK+),将绘图嵌入到应用中。

在Python中有许多用于三维绘图的选项,但这里有一些使用Matplotlib的常见简单方法。

一般来说,第一步是创建一个三维坐标轴,然后绘制出最能说明特定需求的数据的三维图形。为了使用Matplotlib,必须导入Matplotlib安装中包含的mplot3d工具包:

from mpl_toolkits import mplot3d

然后,要创建三维轴,可以执行以下代码:

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = plt.axes(projection=’3d’)

python绘图y坐标_python让数据动起来:不要停在二维页面_第2张图片

在这个三维坐标轴中,可以绘制一个图,重要的是要知道哪种类型的图(或图的组合)可以更好地描述数据。

此时,您需要注意的是,这一操作是我们进一步绘图的基础。

点和线:

下图结合了两个绘图,一个图带有一条线,该线穿过数据的每个点,另一个图在本例中的每个特定1000个值上绘制一个点。

这个代码分析时实际上非常简单。我们利用标准三角函数绘制了一组随机值,并利用这些数据生成三维投影。代码如下:

ax = plt.axes(projection=’3d’)# Data for a three-dimensional line
zline = np.linspace(0, 15, 1000)
xline = np.sin(zline)
yline = np.cos(zline)
ax.plot3D(xline, yline, zline, ‘gray’)# Data for three-dimensional scattered points
zdata = 15 * np.random.random(100)
xdata = np.sin(zdata) + 0.1 * np.random.randn(100)
ydata = np.cos(zdata) + 0.1 * np.random.randn(100)
ax.scatter3D(xdata, ydata, zdata, c=zdata, cmap=’Greens’);

python绘图y坐标_python让数据动起来:不要停在二维页面_第3张图片

三维等高线图

由于需要二维网格上的数据,因此轮廓图的输入与上一个绘图稍有不同。

请注意,在下面的示例中,在为x和y赋值之后,通过执行“np.meshgrid(x,y)”将它们组合到网格上,然后通过执行函数f(x,y)和网格值(z=f(x,y))创建z值。

再一次,基本的简化三维图为以下代码:

def f(x, y):
    return np.sin(np.sqrt(x ** 2 + y ** 2))
x = np.linspace(-6, 6, 30)
y = np.linspace(-6, 6, 30)
X, Y = np.meshgrid(x, y)
Z = f(X, Y)fig = plt.figure()
ax = plt.axes(projection='3d')
ax.contour3D(X, Y, Z, 50, cmap='binary')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z');

python绘图y坐标_python让数据动起来:不要停在二维页面_第4张图片

在以前的图形中,数据是按顺序生成的,但在现实生活中,有时数据是不按顺序生成的,对于这些情况,三角网格曲面测量非常有用,因为它通过查找相邻点之间形成的三角形集来创建曲面。

表面三角测量:

theta = 2 * np.pi * np.random.random(1000)
r = 6 * np.random.random(1000)
x = np.ravel(r * np.sin(theta))
y = np.ravel(r * np.cos(theta))
z = f(x, y)
ax = plt.axes(projection=’3d’)
ax.plot_trisurf(x, y, z,cmap=’viridis’, edgecolor=’none’);

python绘图y坐标_python让数据动起来:不要停在二维页面_第5张图片

你可能感兴趣的:(python绘图y坐标)