使用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必须具有相同的第一维度”