使用Python中的Matplotlib在矩阵中绘制与数组中的索引对应的值

使用Python中的Matplotlib在矩阵中绘制与数组中的索引对应的值,python,numpy,matplotlib,Python,Numpy,Matplotlib,我有这个数组和矩阵: delta_Array = np.array([0.01,0.02,0.03, 0.04, 0.05, 0.06,0.07, 0.08, 0.09, 0.10]) theta_Matrix = [[ 0.42860551 0.15916832 -0.11548373 0.21118448 -0.11248666 -0.10941028 0.21753078 0.0066507 ] [ 0.42860033 0.15916739 -0.115480

我有这个数组和矩阵:

 delta_Array = np.array([0.01,0.02,0.03, 0.04, 0.05, 0.06,0.07, 0.08, 0.09, 0.10])
 theta_Matrix = 
 [[ 0.42860551  0.15916832 -0.11548373  0.21118448 -0.11248666 -0.10941028
    0.21753078  0.0066507 ]
  [ 0.42860033  0.15916739 -0.11548099  0.2111825  -0.11248553 -0.10940605
    0.21752721  0.00665198]
  [ 0.42859169  0.15916584 -0.11547644  0.2111792  -0.11248364 -0.109399
    0.21752126  0.00665412]
  [ 0.4285796   0.15916367 -0.11547007  0.21117458 -0.11248099 -0.10938913
    0.21751293  0.00665711]
  [ 0.42856405  0.15916088 -0.11546187  0.21116863 -0.11247759 -0.10937644
    0.21750223  0.00666096]
  [ 0.42854505  0.15915746 -0.11545186  0.21116137 -0.11247344 -0.10936093
    0.21748915  0.00666566]
  [ 0.4285226   0.15915343 -0.11544002  0.21115279 -0.11246853 -0.1093426
    0.2174737   0.00667121]
  [ 0.4284967   0.15914878 -0.11542637  0.21114289 -0.11246286 -0.10932146
    0.21745587  0.00667762]
  [ 0.42846735  0.15914351 -0.1154109   0.21113166 -0.11245644 -0.1092975
    0.21743567  0.00668487]
  [ 0.42843455  0.15913762 -0.11539361  0.21111912 -0.11244926 -0.10927074
    0.2174131   0.00669298]]
θ_矩阵的每列为1种颜色。delta_数组的每个元素给出θ_矩阵中的对应行。我意识到为了得到这些曲线,我需要更多的δ值。但现在我只使用一个小的输入

然而,这是我的代码

  figure(1)
  plot(delta_Array, theta_Matrix)
  plt.show()
按如下方式绘制图形:

很明显,我错过了很多东西。我从这里学到了一些基本的东西:

但我正在努力填补缺失的部分。谁能帮我一把吗? 我是一个新手,所以如果你知道一些简单的教程,我将不胜感激。不幸的是,大多数在线教程的熟练程度都比我高


谢谢

您的问题和数据不清楚,但是,请尝试以下方法:

import numpy as np
import matplotlib.pyplot as plt

delta_Array = np.array([0.01,0.02,0.03, 0.04, 0.05,
                        0.06,0.07, 0.08, 0.09, 0.10])
#Initialized to 0s. Actual values will be appended to matrix by function
theta_Matrix = np.random.random() * np.random.rand(delta_Array.size, 8) 

fig = plt.figure()
p1 = plt.plot(delta_Array, theta_Matrix)
# make a legend for both plots
leg = plt.legend(p1, '', loc=1)

plt.show()

在更新矩阵时,问题在于数据的长度和组织

首先更改x数据的长度:

delta_Array = np.array([0.01,0.02,0.03, 0.04, 0.05,
                        0.06,0.07, 0.08])
然后转换矩阵:

p1 = plt.plot(delta_Array, ThetaMatrix.T)

您的代码有点乱<代码>θ图已定义,但从未使用过
theta_矩阵
未定义,但我假设它应该是
ThetaMatrix
。我也相信你的数据形状都是一团糟。如果我查看矩阵的每一列,每个值几乎都是一个常数:例如,第一列几乎总是0.428。。。你能在这里更清楚地说明你希望学习如何使用matplotlib吗?嗨,谢谢你的反馈。是的,theta_图是多余的,我纠正了theta_矩阵的错误。第1列的值会发生变化,但幅度非常小,请参见小数点后的最后3或4位。θ_矩阵的尺寸为10x8,δ的尺寸为1x10。因此,θu矩阵的第i行对应于δu数组[i]右侧的输出值,因此数据几乎是恒定的(但略有不同),您创建的图显示了具有几乎恒定值的数据图。。。因为y轴的比例太大,所以看不到小的变化。如果您放大其中一条线,您将看到值的细微变化。有没有建议如何设置轴以便我可以放大?交互:您的图形具有缩放功能。尝试使用工具栏上的按钮和放大镜。以编程方式:尝试使用
axis
函数,例如放大蓝线:
axis((0.009,0.100,0.006,0.007))
您好,谢谢您的回复。但是,增量值可能会有所不同,因此我无法限制它们。因为delta是我的x值。因此,我可以为我的函数提供x个值(输入)的infinte数。对于每个x(输入),我得到一个8个值的向量,这是我需要绘制的θ。转换θ矩阵给了我一个错误:“ValueError:x和y必须具有相同的第一维度”