循环使用numpy数组,将所有数组绘制为单个图形(matplotlib)

2024-09-25 00:24:41 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的函数分别绘制一个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数组的列表,并将所有数组从列表绘制到一个图形上

我已经添加了循环元素,但不确定如何保持图形和添加额外的绘图。。。在

^{pr2}$

Tags: importnumpydatamakeifobjectdefas
1条回答
网友
1楼 · 发布于 2024-09-25 00:24:41

要在同一轴上绘制多个数据集,可以执行以下操作:

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个数据集中的每一个都显示为不同的颜色):

^{pr2}$

enter image description here

相关问题 更多 >