【问题标题】:How to draw single plot with two colors in Pandas如何在 Pandas 中用两种颜色绘制单个图
【发布时间】:2021-03-02 15:01:34
【问题描述】:

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

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

【问题讨论】:

  • 我不想要两个单独的图。我需要一个不同颜色的。

标签: python-3.x pandas matplotlib time-series


【解决方案1】:

创建示例数据

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) 展平嵌套列表,然后继续第一个解决方案。

【讨论】:

  • 我试过了,图正在合并,但我丢失了原始 Y 轴数据。我的列表 x_list 具有绘制在 Y 轴上的值。
  • “丢失原始 Y 轴数据”是什么意思?如果您可以将您的数据(样本)放入问题中会有所帮助。
  • 我放不下数据。其机密。如果您在描述中看到示例图,则 y 轴的范围是 0 到 36K。
  • 我的列表是 275 项,范围从 0 到 36K。我想绘制 X 轴上的项目和 Y 轴上的值列表
  • 不确定您的错误是什么,能否提供更多详细信息?如果我使用np.random.randint(0,36000,300),那么这是您拥有的 y 范围内的数据,它正在正确绘制它。
猜你喜欢
  • 1970-01-01
  • 2015-07-11
  • 1970-01-01
  • 2021-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-06
相关资源
最近更新 更多