首页 > 解决方案 > 连接线如何连接点的约定

问题描述

我有两个矩阵,xyx10行和50列的大小, y.

我的数据是逐行配对的。这意味着

x[0][:] <-> y[0][:]
x[1][:] <-> y[1][:]
x[2][:] <-> y[2][:]

......
x[49][:] <-> y[0][:]

当我使用以下命令进行绘图时,

plot(x[:][:],y[:][:],'b-o')

或者

plot(x,y,'b-o')

要绘制该图,“-”将水平方向的点连接起来,如下所示:

在此处输入图像描述

但是,当我只绘制一行信号时:

plot(x[0][:],y[0][:],'b-o')

它看起来正确:

在此处输入图像描述

我希望“-”以水平方式连接点。像这样的东西:

在此处输入图像描述

而不是做一个for循环,我该如何以矩阵格式做呢?谢谢。

标签: pythonarraysmatrixvectorplot

解决方案


做一些数据来演示。

import numpy as np
from matplotlib import pyplot as plt

x = np.matrix(
    [
        [1, 1, 1, 1],
        [2, 2, 2, 2],
        [3, 3, 3, 3],
        [4, 4, 4, 4]
    ]
)

y = x.transpose()

# Vertical Lines of grid:
plt.plot(x, y, 'b-o')
plt.show()

垂直

# Horizontal Lines
plt.plot(x, y, 'b-o')
plt.show()

堀

# Together (this is what I think you want)
plt.plot(y, x, 'b-o')
plt.plot(x, y, 'b-o')
plt.show()

网格

如果您尝试将它们连接到一个大矩阵中,它会通过连接我们真的不想连接的几个点来做一些看似愚蠢的事情。

# sillyness
x1 = np.concatenate((x, y), axis=0)
y1 = np.concatenate((y, x), axis=0)

plt.plot(x1, y1, 'b-o')
plt.show()

在此处输入图像描述


推荐阅读