[Tutor] Shading Between Curves with Different Colour Over Specified X value Range

Colin Ross colin.ross.dal at gmail.com
Mon Jul 27 20:47:42 CEST 2015


*Goal:* Shade between I_2 (curve 1) and I_3 (curve 2) with following
conditions:
                                              - Green for 0 < x < 4
                                              - Red for 4 < x < 12

*Code: *

*Note: Code currently only attempting to shade green for 0 < x < 4 *

import numpy as np
import pylab
from pylab import *
import matplotlib.pyplot as plt
import csv


# Load data from .txt file

with open('current_mirror_output_swing.csv', 'rb') as f:
   reader = csv.reader(f)
   your_list = list(reader)

data = np.asarray(your_list)

I_ref = np.asarray(data[1:,0])
I_1 = data[1:,1]
I_2 = data[1:,2]
I_3 = data[1:,3]

# Create an array of x values to fill b/w curves with a certain color.

X1 = np.linspace(0.,4.,len(I_3))

I_ref = I_ref.astype(float)*1000.
I_1 = I_1.astype(float)*1000.
I_2 = I_2.astype(float)*1000.
I_3 = I_3.astype(float)*1000.


# Plotting commands.

plot(I_ref, I_2, 'r-')
plot(I_ref, I_3, 'b-')
title('Current Mirror Output Swing')
xlabel('$I_{ref}$ (mA)')
ylabel('I (mA)')

plt.fill_between(X1, I_2, I_3, color = 'g', alpha = '0.5')
plt.legend(['$I_{ref}$', '$I_{out}$'], loc='upper left')
plt.grid()

show()

*Issue: *

See attached figure.

Thank you.


More information about the Tutor mailing list