Python 在matplotlib上打印numpy数组
我有以下代码:Python 在matplotlib上打印numpy数组,python,numpy,matplotlib,Python,Numpy,Matplotlib,我有以下代码: import matplotlib.pyplot as plt import numpy as np a=np.array([[0],[1],[2]], np.int32) b=np.array([[3],[4],[5]], np.int32) plt.plot(a, color = 'red', label = 'Historical data') plt.plot(b, color = 'blue', label='Predicted data') plt.legend()
import matplotlib.pyplot as plt
import numpy as np
a=np.array([[0],[1],[2]], np.int32)
b=np.array([[3],[4],[5]], np.int32)
plt.plot(a, color = 'red', label = 'Historical data')
plt.plot(b, color = 'blue', label='Predicted data')
plt.legend()
plt.show()
这给了我一个由两条线组成的图表,每条线从x轴=0开始
我如何连接'a'
和'b'
并绘制图形,使'b'
在x轴上继续'a'
结束的位置
谢谢 您可以添加一个x
数组,然后在下一个绘图中增加其值,以便将其附加到上一个绘图中
import matplotlib.pyplot as plt
import numpy as np
a=np.array([[0],[1],[2]], np.int32)
b=np.array([[3],[4],[5]], np.int32)
x = np.arange(a.shape[0])
plt.plot(x, a, color = 'red', label = 'Historical data')
plt.plot(x+a.shape[0], b, color = 'blue', label='Predicted data')
plt.legend()
plt.show()
后续问题:如果numpy数组是:a=np.array([[0],[1],[2]],np.int32)b=np.array([[2],[3],[4],[5]],np.int32),该怎么办?我得到了这个错误:ValueError:x和y必须有相同的第一维度,但是有形状(3,)和(4,1)我怎么才能避免这个问题呢?既然a
和b
的形状不同,你必须在这里创建两个不同的x
变量x1=np.arange(a.shape[0])
和x2=np.arange(a.shape[0],a.shape[0]+b、 形状[0])
x1
可与a一起使用,x2
可与b一起使用