为什么matplotlib没有显示使用numpy随机数组生成的值的图表



我已经编写了以下代码,

import numpy as np
import matplotlib.pyplot as plt
x=np.random.randint(0,10,[1,5])
y=np.random.randint(0,10,[1,5])
x.sort(),y.sort()
fig, ax=plt.subplots(figsize=(10,10))
ax.plot(x,y)
ax.set( title="random data plot", xlabel="x",ylabel="y")

我得到一个空白的数字。如果我手动将以下值分配给x和y,而不使用随机函数,则相同的代码会打印图表。

x=[1,2,3,4]
y=[11,22,33,44]

我是错过了什么还是做错了什么。

如果将形状指定为[1,5],则

x=np.random.randint(0,10,[1,5])返回一个数组。您可能想要x=np.random.randint(0,10,[1,5])[0]x=np.random.randint(0,10,size = 5)。请参阅:https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.random.randint.html

Matplotlib默认情况下不绘制标记,只绘制一行。根据@Can注释,matplotlib将您的(1,5(数组解释为5个不同的数据集,每个数据集有1个点,因此没有线,也没有第二个点。

如果你在绘图功能中添加了一个标记,那么你可以看到数据实际上正在被绘制,只是可能不是你想要的:

import matplotlib.pyplot as plt
import numpy as np
x=np.random.randint(0,10,[1,5])
y=np.random.randint(0,10,[1,5])
x.sort(),y.sort()
fig, ax=plt.subplots(figsize=(10,10))
ax.plot(x,y, marker='.') # <<< marker for each point added here
ax.set( title="random data plot", xlabel="x",ylabel="y")

最新更新