2017-02-17 7 views
0

Я пытаюсь построить из этих двух наборов данных. Это работает, за исключением цвета. Я пытаюсь сопоставить цвета ufiles и dfiles, так что строка из ufile [1] и dfiles [1] будет иметь тот же цвет.Контролируйте порядок цветов и рисуйте линию при y = 0

Как я могу это получить?

#!/usr/bin/env python3 
# import np 
import pylab 

ufiles = ["dos_u_Co.dat", "dos_u_Fe.dat", "dos_u_Re.dat", "dos_u_tot.dat"] 
dfiles = ["dos_d_Co.dat", "dos_d_Fe.dat", "dos_d_Re.dat", "dos_d_tot.dat"] 
colors = ('b', 'g', 'r','c') 


datalist = [ (pylab.loadtxt(filename)) for filename in ufiles ] 
for data in datalist: 
    pylab.plot(data[:,0], data[:,1], label=datalist) 

datalist = [ (pylab.loadtxt(filename)) for filename in dfiles ] 
for data in datalist: 
    pylab.plot(data[:,0], -1*data[:,1], label=datalist) 

pylab.show() 

ответ

1

Просто цикл через colors как вы прокручиваете datalist с помощью zip, а затем установить цвет участка, используя color kwarg:

import pylab 

ufiles = ["dos_u_Co.dat", "dos_u_Fe.dat", "dos_u_Re.dat", "dos_u_tot.dat"] 
dfiles = ["dos_d_Co.dat", "dos_d_Fe.dat", "dos_d_Re.dat", "dos_d_tot.dat"] 
colors = ('b', 'g', 'r','c') 


datalist = [ (pylab.loadtxt(filename)) for filename in ufiles ] 
for data, color in zip(datalist, colors): 
    pylab.plot(data[:,0], data[:,1], color=color, label=datalist) 

datalist = [ (pylab.loadtxt(filename)) for filename in dfiles ] 
for data, color in zip(datalist, colors): 
    pylab.plot(data[:,0], -1*data[:,1], color=color, label=datalist) 

pylab.show() 
+0

Дорогой Том: Большое спасибо. – BaRud

+0

Еще одна вещь: можете ли вы также добавить строку для установки xlim, ylim? Я попробовал 'pylab.set_xlim = ([- 4, 3]) pylab.ylim = ([- 4, 3])' , но ни один из них не имеет никакого эффекта – BaRud

+1

удалите '=' из ваших строк выше, например 'pylab.xlim ([- 4, 3])' – tom

 Смежные вопросы

  • Нет связанных вопросов^_^