好吧,我在这里完全不知所措。我想我在试着画一个二维等高线图。不过,我不确定这是否是我要构建的情节的名称。我有一张我试图构建的附加图片
我发现了几个关于构建这样一个图(Python : 2d contour plot from 3 lists,https://matplotlib.org/api/_as_gen/matplotlib.pyplot.contour.html)的有用问题和指南。我遇到的问题是,所有东西都要求x轴和y轴具有相同数量的数据点。但是,我的x轴列表有26个值,而y轴列表有1024个值。表示每个对应数据点需要的颜色的列表是26*1024=26624个数据点长。在
我将试着解释描述我的绘图的数据是如何工作的,但是万一我做得不好,我也会附上我的数据的示例图片。基本上,它列出一个x值1024次。每次列出x值时,都会列出相应的y和z值。然后转到下一个x值。在
例如:
x = np.array([0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4])
y = np.array([0.2, 0.4, 0.6, 0.8, 1, 0.2, 0.4, 0.6, 0.8, 1, 0.2, 0.4, 0.6, 0.8, 1, 0.2, 0.4, 0.6, 0.8, 1, 0.2, 0.4, 0.6, 0.8, 1)]
color_map = random.sample(xrange(10), 25)
我提取数据没有问题,只知道在提取数据后该如何处理
^{pr2}$救命啊!在
不要求沿两个轴具有相同数量的数据。 与
您有
nx = 5
不同的x值和ny = 5
不同的y值,但同样可以有不同数量的值。 唯一的要求是z值等于这两个数的乘积,在本例中为25
z值等于每个数的乘积减1,在这种情况下是16。在
取决于要在轴网边缘还是中心定义值。在
在这种情况下,第一种情况似乎适用。在
因此,您只需将数据重塑为二维数组(在本例中,将其转置,因为x值沿着第二个数组维度移动)。在
最后,您可以使用
imshow
来绘制它。棘手的部分是设置正确的图像范围,因为图像边缘不在中心像素位置,而是半个像素宽度向右或向左移动。在在matlib中寻找这个函数我相信你是什么
解决问题的最佳方法是遵循此page中包含的脚本。在
你能以一种可以复制的格式共享一点数据吗?我可以分享一个代码片段,与你的数据工作,以进一步澄清。在
绘制不规则数据等高线的另一种方法:
相关问题 更多 >
编程相关推荐