尝试在我的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
开始。
希望有一个简单的方法来解决这个问题。
答案 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
还有更多。因此,我将不再重复本论坛其他地方的发言。