首页 > 解决方案 > 如何在 Pandas 中用两种颜色绘制单个图

问题描述

我用值列表绘制了下图。但是图表没有合并。我需要在蓝色情节之后立即开始红色情节。

plt.plot(x_list[:251])
plt.plot(x_list[251:],color='r')

在此处输入图像描述

标签: python-3.xpandasmatplotlibtime-series

解决方案


创建示例数据

x_list = np.random.randint(0,100,300)

制作另一个列表,用 NAN 填充数据直到 251:

y_list = [np.nan]*300
y_list[251:] = x_list[251:]

阴谋

plt.plot(x_list[:251])
plt.plot(y_list,color='r')

OP给出的替代数据

x_list = [[26756.0], [0.0], [831.0], [23676.0], [0.0], [0.0], [0.0], [1325.0], [33293.0], [32323.000000000004], [30535.0], [32351.0], [30859.000000000004], [28416.0]]

请注意,我将括号放在np.nan与输入数据一致 - 这是一个嵌套列表。由于示例列表的长度为 14,因此我使用 10 作为开始第二个时间序列的点。

y_list = [[np.nan]]*len(x_list)
y_list[10:] = x_list[10:]
plt.plot(x_list[:10])
plt.plot(y_list, color='r')

另一种方法是使用扁平化嵌套列表list(np.array(x_list).flat),然后继续使用第一个解决方案。


推荐阅读