因此,我知道已经发布了类似的问题,但是对于我的特殊情况还没有任何作用。我知道可以使用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()
但是,我想通过循环来实现。抱歉,如果其他地方都回答了这个问题,但我找不到。任何帮助,将不胜感激!谢谢。
答案 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])