我想创建一个不连续的图,当变量为“ nan”时不打印任何内容。不幸的是,由于该图的y轴报告字符串值,因此当出现“ nan”时,该图仅在y轴上创建了“ nan”对勾。
举个例子:
我希望蓝色图形在出现“ nan”时不显示任何内容,而不是将nan视为字符串。
提前致谢
更新:
作为最小的示例,假设我写了:
x = [0,1,2,3,4,5,6,7,8]
y = ['Stairs',np.nan, 'Sitting', np.nan, 'Stairs','Falling','Falling','Standing',np.nan]
plt.plot(x,y)
它给了我以下结果:
我希望Nan不显示在情节上。可能吗?
您可以使用整数索引进行绘图,然后相应地标记刻度线:
import matplotlib.pyplot as plt
import numpy as np
x = [0,1,2,3,4,5,6,7,8]
y = ['Stairs',np.nan, 'Sitting', np.nan, 'Stairs','Falling','Falling','Standing',np.nan]
y_ticks = ['Stairs', 'Sitting', 'Falling', 'Standing']
y_int = [np.nan if elem is np.nan else y_ticks.index(elem) for elem in y]
plt.plot(x, y_int, '.-')
plt.yticks(range(len(y_ticks)), y_ticks)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句