遍历DataFrame列以制作Matplotlib线图

时间:2019-08-21 14:40:55

标签: python pandas dataframe

因此,我知道已经发布了类似的问题,但是对于我的特殊情况还没有任何作用。我知道可以使用Pandas绘图功能来完成,但是这些线需要在Matplotlib图形上,以便可以使用散点图和其他东西进行绘图...

我有一个这样的DataFrame:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

lines = pd.DataFrame(columns=list('ABC'))
lines.columns = ['T', 'Line1', 'Line2']
lines['T'] = np.arange(0,100,0.1)
lines['Line1'] = np.cos(lines['T']) + 30
lines['Line2'] = np.sin(lines['T']) + 13

我想用共享同一X轴的2条单独的线进行绘图。我可以这样:

plt.figure()
plt.plot(lines['T'], lines['Line1'])
plt.plot(lines['T'], lines['Line2'])
plt.show()

哪个给我:enter image description here

但是,我想通过循环来实现。抱歉,如果其他地方都回答了这个问题,但我找不到。任何帮助,将不胜感激!谢谢。

3 个答案:

答案 0 :(得分:1)

使用数据框的columns属性。

plt.plot(lines[lines.columns[0]], lines[lines.columns[1:]])

或者只是像Quang Hoang在评论中建议的那样:

lines.plot(x='T')

答案 1 :(得分:0)

line_cols = ["Line1", "Line2"]

plt.figure()
for l in line_cols:
    plt.plot(lines['T'], lines[l])
plt.show()

答案 2 :(得分:0)

如果您坚持使用循环,则可以执行以下操作:

for column in lines:
    if column != 'T':
        plt.plot(lines['T'], lines[column])