python - 连接线如何连接点的约定
问题描述
我有两个矩阵,x
和y
。 x
有10
行和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循环,我该如何以矩阵格式做呢?谢谢。
解决方案
做一些数据来演示。
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()
推荐阅读
- apache-flink - 持久化 Apache Flink 窗口
- java - jooq 比较 2 个日期 - 它不喜欢 java.sql.Date
- rust - 错误:POE 教程中缺少 `#[pallet::config]` 错误
- dart - 飞镖流会带来额外的开销吗?
- c# - 获取 ms 图形令牌失败
- excel - Excel VBA 打开 Internet Explorer
- usb - 所有 USB 都使用差分协议(D+ 和 D-)吗?或者是一些TX和RX?
- java - Spring:用一个没有连接列的行表连接实体
- sql - 如何将日期格式更改为年和月,但必须保留为日期值而不是 varchar 或 char ..?
- php - 警告:ZipArchive::close():创建临时文件失败:未知错误