在开头缺少值 - matplotlib

时间:2016-07-22 12:56:17

标签: python matplotlib

尝试在我的matplot图表中添加缺失值(无)或numpy np.nan。通常可以通过这种方式丢失值:

import matplotlib.pyplot as plt

fig = plt.figure(1)

x = range(10)
y = [1, 2, None, 0, 1, 2, 3, 3, 5, 10]

ax = fig.add_subplot(111)
ax.plot(x, y, 'ro')

plt.show()

但看起来在图表的开头不容易支持缺失值。

import matplotlib.pyplot as plt

fig = plt.figure(1)

x = range(10)
y = ([None]*5)+[x for x in range(5)]

ax = fig.add_subplot(111)
ax.plot(x, y, 'ro')

plt.show()

显示:

但我想从x=0而不是x=5开始。 希望有一个简单的方法来解决这个问题。

2 个答案:

答案 0 :(得分:4)

空值似乎对第二个图没有影响的原因是因为自动确定了轴对象的x和y限制。在第一种情况下,您拥有跨越您关注的整个x / y范围的“真实”数据,并且轴会自动缩放以适合此数据。在第二个示例中,您的实际数据仅涵盖x值的上限范围,因此matplotlib将截断x轴,因为没有任何内容可以显示。

解决这个问题的方法是明确指定轴的xlims。您可以使用x的值来确定这些值。

plt.xlim(x[0], x[-1])

答案 1 :(得分:3)

Matplotlib自动选择x轴和y轴的参数。在这种情况下,它只显示可以显示的点。如果x-或y为“无”,则无法显示任何内容。如果您还想查看图表的“空”部分,只需自己调整轴范围即可。

如何做到这一点,已在本论坛的类似问题中多次回答,如:

Matplotlib/pyplot: How to enforce axis range?

Python, Matplotlib, subplot: How to set the axis range?

setting y-axis limit in matplotlib

还有更多。因此,我将不再重复本论坛其他地方的发言。