循环内标记和着色图 - matplotlib

时间:2013-12-17 16:44:28

标签: python matplotlib plot

我正在使用for循环从同一轴上的多个文件绘制多个磁滞回线,我想知道如何为每个循环使用不同的标签和颜色。每个循环实际上由两行组成。相关代码是:

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

filelist = ['file1', 'file2', 'file3']

fig = plt.figure()
axes = fig.add_subplot(111)

for item in filelist:
    filename = item
    #import hyst files
    up = pd.read_csv(filename)
    up.columns = ['Field','Moment','Temperature']

    upcut = up2[:cut_loc -1] #cuts the file in 2
    down = up2[cut_loc +1:]

    upcutsrt = (upcut.sort(['Field']))

    upcutsrt.plot(x='Field', y='Moment', ax=axes)
    down.plot(x='Field', y='Moment', ax=axes)

ax1.set_xlabel('Magnetic Field', fontsize = 20, labelpad = 15)
ax1.set_ylabel('Magnetic Moment', fontsize=20, labelpad = 15)

plt.show()

因此,这将在同一轴上绘制3条不同的滞后曲线,并使用相同的轴标签和刻度以及所有内容。不幸的是,所有的线都是相同的颜色。我想让每条曲线(从文件上下)有不同的颜色和不同的标签,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:2)

首先,您需要一个颜色列表,每个文件一个:

colors = ['red', 'green', 'blue']

然后修改for循环:

for item,col in zip(filelist,colors):

最后使用颜色绘图:

    upcutsrt.plot(x='Field', y='Moment', ax=axes, color=col)
    down.plot(x='Field', y='Moment', ax=axes, color=col)