Re: [Tutor] Shading Between Curves with Different Colour Over Specified X value Range
On Tue, Jul 28, 2015 at 11:03 AM, Oscar Benjamin oscar.j.benja...@gmail.com wrote: On Mon, 27 Jul 2015 at 20:53 Colin Ross colin.ross@gmail.com wrote: *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. Here you specify the X values for the fill shape as going from 0 to 4: 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. Here you specify the X values for the line plots as being whatever I_ref is (I don't know what it is since I can't see your csv file): plot(I_ref, I_2, 'r-') plot(I_ref, I_3, 'b-') title('Current Mirror Output Swing') xlabel('$I_{ref}$ (mA)') ylabel('I (mA)') Try changing this line: plt.fill_between(X1, I_2, I_3, color = 'g', alpha = '0.5') to: plt.fill_between(I_ref, I_2, I_3, color = 'g', alpha = '0.5') and then the filled area should have the same X range as the lines. -- Oscar Thanks! This works now. ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Shading Between Curves with Different Colour Over Specified X value Range
On 28/07/15 01:00, Colin Ross wrote: *Issue: * See attached figure. Thank you. There is no attachment to see, sorry :( My apologies. SHould be there now! The problem is a lot of mailing list servers (and even some corporate mail servers) strip off attachments. In this case I still can't see one so something between you and me is stripping it. It may even be that some people will see it and others don't. For that reason it's usually better if you have access to some web space to post the image there and provide a URL. Or at least provide a textual description for those who can't see the image. hth -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Shading Between Curves with Different Colour Over Specified X value Range
On Mon, Jul 27, 2015 at 5:01 PM, Mark Lawrence breamore...@yahoo.co.uk wrote: On 27/07/2015 19:47, Colin Ross wrote: *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. There is no attachment to see, sorry :( My apologies. SHould be there now! One thing to note about the following lines. from pylab import * import matplotlib.pyplot as plt The first was designed to make matplotlib easy to use interactively, especially in iPython, the second in a script. IIRC the former is deprecated so I suggest you stick with the latter. Great, thank you! -- My fellow Pythonistas, ask not what our language can do for you, ask what you can do for our language. Mark Lawrence ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Shading Between Curves with Different Colour Over Specified X value Range
On Mon, 27 Jul 2015 at 20:53 Colin Ross colin.ross@gmail.com wrote: *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. Here you specify the X values for the fill shape as going from 0 to 4: 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. Here you specify the X values for the line plots as being whatever I_ref is (I don't know what it is since I can't see your csv file): plot(I_ref, I_2, 'r-') plot(I_ref, I_3, 'b-') title('Current Mirror Output Swing') xlabel('$I_{ref}$ (mA)') ylabel('I (mA)') Try changing this line: plt.fill_between(X1, I_2, I_3, color = 'g', alpha = '0.5') to: plt.fill_between(I_ref, I_2, I_3, color = 'g', alpha = '0.5') and then the filled area should have the same X range as the lines. -- Oscar ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Shading Between Curves with Different Colour Over Specified X value Range
On 27/07/2015 19:47, Colin Ross wrote: *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. There is no attachment to see, sorry :( One thing to note about the following lines. from pylab import * import matplotlib.pyplot as plt The first was designed to make matplotlib easy to use interactively, especially in iPython, the second in a script. IIRC the former is deprecated so I suggest you stick with the latter. -- My fellow Pythonistas, ask not what our language can do for you, ask what you can do for our language. Mark Lawrence ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor