请考虑下面的例子

import pandas as pd
import matplotlib.pyplot as plt

ddd = pd.DataFrame({'time': [1,2,3,4],
                    'var1': [1,4,6,3],
                    'var2': [4,3,2,1]})


fig, ax = plt.subplots()

for col in ['var1', 'var2']:
    ddd.set_index('time')[col].plot(label = col)

这提供了:

enter image description here

但是,正如您所看到的,即使我在plot()调用中使用了label参数,图例的标签也不正确.你知道如何在保持循环 struct 的同时修复这个问题(在共享ax的同时按顺序添加图表)吗?

谢谢!

推荐答案

在代码中,您走在正确的道路上,但有一个小问题.您在循环中设置了索引,这就是导致标签问题的原因,因为DataFrame DDD的索引在每次迭代中都会更改.您可以在运行for循环之前对其进行设置,使其位于循环之外,如下所示,以使图例正确显示,并使两个列共享同一轴:

fig, ax = plt.subplots()

ddd.set_index('time', inplace=True)

for col in ['var1', 'var2']:
    ddd[col].plot(label=col, ax=ax)  # use the ax parameter to share the same axis

ax.legend()

plt.show()

Python相关问答推荐

如何在WTForm中使用back_plumates参考brand_id?

有没有办法清除气流中的僵尸

Pandas使用过滤器映射多列

带有pandas的分区列上的过滤器的多个条件read_parquet

使用Python进行网页抓取,没有页面

两极:如何分割一个大 pyramid 并并行保存每个

如何在矩阵上并行化简单循环?

在上下文管理器中更改异常类型

jit JAX函数中的迭代器

acme错误-Veritas错误:模块收件箱没有属性linear_util'

将特定列信息移动到当前行下的新行

'discord.ext. commanders.cog没有属性监听器'

如何根据参数推断对象的返回类型?

通过pandas向每个非空单元格添加子字符串

删除字符串中第一次出现单词后的所有内容

ODE集成中如何终止solve_ivp的无限运行

如何调整QscrollArea以正确显示内部正在变化的Qgridlayout?

如何根据一列的值有条件地 Select 前N组?

有没有一种ONE—LINER的方法给一个框架的每一行一个由整数和字符串组成的唯一id?

numpy.unique如何消除重复列?