Python 在matplotlib中绘制不同形状的二维阵列
我找不到这个具体案例的任何答案。假设我想从以下数据创建散点图:Python 在matplotlib中绘制不同形状的二维阵列,python,matplotlib,Python,Matplotlib,我找不到这个具体案例的任何答案。假设我想从以下数据创建散点图: y = np.array([[1,2,3,6,5,3,4,2],[1,2,4,5,5,3,3,2]]) X = np.array([[86],[82]]) 其中y[0]的所有值都是X[0](86)的对应值,依此类推。我知道我可以使用numpyrepeat函数,但我想也许还有其他更可行的选项?我尝试过重塑任何阵列的形状,但没有任何帮助。有什么想法吗?我非常喜欢numpy的平铺功能。我不认为有什么办法可以“放大”X[I]使其与y[I]
y = np.array([[1,2,3,6,5,3,4,2],[1,2,4,5,5,3,3,2]])
X = np.array([[86],[82]])
其中
y[0]
的所有值都是X[0]
(86)的对应值,依此类推。我知道我可以使用numpyrepeat
函数,但我想也许还有其他更可行的选项?我尝试过重塑任何阵列的形状,但没有任何帮助。有什么想法吗?我非常喜欢numpy的平铺功能。我不认为有什么办法可以“放大”X[I]使其与y[I]的长度相匹配
import numpy as np
import matplotlib.pyplot as plt
y = np.array([[1,2,3,6,5,3,4,2],[1,2,4,5,5,3,3,2]])
X = np.array([[86],[82]])
for i in range(len(X)):
plt.plot(np.tile(X[i], len(y[i])), y[i], '.')
我真的很喜欢numpy的平铺功能。我不认为有什么办法可以“放大”X[I]使其与y[I]的长度相匹配
import numpy as np
import matplotlib.pyplot as plt
y = np.array([[1,2,3,6,5,3,4,2],[1,2,4,5,5,3,3,2]])
X = np.array([[86],[82]])
for i in range(len(X)):
plt.plot(np.tile(X[i], len(y[i])), y[i], '.')
你不需要做太多。Matplotlib将数据的每一列视为一个单独的、可广播的数据集。所以你需要做的就是转换你的输入,让它发挥它的魔力
plt.scatter(x.T, y.T)
你不需要做太多。Matplotlib将数据的每一列视为一个单独的、可广播的数据集。所以你需要做的就是转换你的输入,让它发挥它的魔力
plt.scatter(x.T, y.T)
转换y数据转换y数据谢谢。虽然我已经试过了。我得到一个错误x和y的大小必须相同:(谢谢。虽然我已经尝试过了。我得到一个错误x和y的大小必须相同:(