当我有数值数据时,比如按某种时间进行索引时,可以直接绘制数据中的间隙。例如,如果我在时间 1、2、3、5、6、7 处有值,我可以在时间 4 处设置
np.nan
来分解绘图。
import numpy as np
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5, 6, 7]
y = [10, 20, 30, np.nan, 10, 20, 30]
plt.plot(x, y)
plt.show()
plt.close()
这肯定比跳过时间 4 的选择要好!
import numpy as np
import matplotlib.pyplot as plt
x = [1, 2, 3, 5, 6, 7]
y = [10, 20, 30, 10, 20, 30]
plt.plot(x, y)
plt.show()
plt.close()
但是,我现在有一个
y
分类变量。大多数情况下,绘图很简单:只需使用类别作为 y
。
import numpy as np
import matplotlib.pyplot as plt
x = [1, 2, 3, 5, 6, 7]
y = ["cat", "cat", "dog", "dog", "cat", "cat"]
plt.plot(x, y)
plt.show()
plt.close()
这会将类别放在 y 轴上,正如我想要的那样。然而,当我使用
np.nan
技巧来获得间隙时,我会在 np.nan
处绘制一个点。
import numpy as np
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5, 6, 7]
y = ["cat", "cat", "dog", np.nan, "dog", "cat", "cat"]
plt.plot(x, y)
plt.show()
plt.close()
如何让我的图在 1、2、3 上进行
cat
cat
dog
,然后在 5、6、7 上进行 dog
cat
cat
,在 4 处留下间隙?