下面的函数每个都绘制一个 numpy 数组
plot1D、plot2D 和plot3D 分别采用具有 1、2 和 3 列的数组
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
def plot1D(data):
x=np.arange(len(data))
plot2D(np.hstack((np.transpose(x), data)))
def plot2D(data):
# type: (object) -> object
#if 2d, make a scatter
plt.plot(data[:,0], data[:,1], *args, **kwargs)
def plot3D(data):
#if 3d, make a 3d scatter
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot(data[:,0], data[:,1], data[:,2], *args, **kwargs)
我希望能够输入 1、2 或 3d 数组的列表,并将列表中的所有数组绘制到一个图形上
我已经添加了循环元素,但不确定如何保持图形并添加其他绘图...
def plot1D_list(data):
for i in range(0, len(data)):
x=np.arange(len(data[i]))
plot2D(np.hstack((np.transpose(x), data[i])))
def plot2D_list(data):
# type: (object) -> object
#if 2d, make a scatter
for i in range(0, len(data)):
plt.plot(data[i][:,0], data[i][:,1], *args, **kwargs)
def plot3D_list(data):
#if 3d, make a 3d scatter
for i in range(0, len(data)):
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot(data[i][:,0], data[i][:,1], data[i][:,2], *args, **kwargs)
最佳答案
要在同一轴上绘制多个数据集,您可以执行以下操作:
def plot2D_list(data,*args,**kwargs):
# type: (object) -> object
#if 2d, make a scatter
n = len(data)
fig,ax = plt.subplots() #create figure and axes
for i in range(n):
#now plot data set i
ax.plot(data[i][:,0], data[i][:,1], *args, **kwargs)
你的其他函数可以用同样的方式推广。下面是使用上述函数与 5 组随机生成的 x-y 坐标的示例,每组长度为 100(5 个数据组中的每组显示为不同的颜色):
import numpy as np
X = np.random.randn(5,100,2)
plot2D_list(X,'o')
plt.show()
关于python - 循环遍历 numpy 数组,将所有数组绘制为单个图形(matplotlib),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39694357/