下面的函数每个都绘制一个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)
答案 0 :(得分:1)
要在同一轴上绘制多个数据集,您可以执行以下操作:
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()