<div dir="ltr"><div class="gmail_default" style="color:rgb(0,0,0)">​​</div><div class="gmail_default" style="color:rgb(0,0,0)"><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, May 21, 2014 at 7:59 AM, Jamie Mitchell <span dir="ltr"><<a href="mailto:jamiemitchell1604@gmail.com" target="_blank">jamiemitchell1604@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">I have made a plot using the following code:<br>
<br>
python2.7<br>
import netCDF4<br>
import matplotlib.pyplot as plt<br>
import numpy as np<br>
<br>
swh_Q0_con_sw=netCDF4.Dataset('/data/cr1/jmitchel/Q0/swh/controlperiod/south_west/swhcontrol_swest_annavg1D.nc','r')<br>
hs_Q0_con_sw=swh_Q0_con_sw.variables['hs'][:]<br>
swh_Q3_con_sw=netCDF4.Dataset('/data/cr1/jmitchel/Q3/swh/controlperiod/south_west/swhcontrol_swest_annavg1D.nc','r')<br>
hs_Q3_con_sw=swh_Q3_con_sw.variables['hs'][:]<br>
swh_Q4_con_sw=netCDF4.Dataset('/data/cr1/jmitchel/Q4/swh/controlperiod/south_west/swhcontrol_swest_annavg1D.nc','r')<br>
hs_Q4_con_sw=swh_Q4_con_sw.variables['hs'][:]<br>
swh_Q14_con_sw=netCDF4.Dataset('/data/cr1/jmitchel/Q14/swh/controlperiod/south_west/swhcontrol_swest_annavg1D.nc','r')<br>
hs_Q14_con_sw=swh_Q14_con_sw.variables['hs'][:]<br>
swh_Q16_con_sw=netCDF4.Dataset('/data/cr1/jmitchel/Q16/swh/controlperiod/south_west/swhcontrol_swest_annavg1D.nc','r')<br>
hs_Q16_con_sw=swh_Q16_con_sw.variables['hs'][:]<br>
swh_Q0_fut_sw=netCDF4.Dataset('/data/cr1/jmitchel/Q0/swh/2050s/south_west/swh2050s_swest_annavg1D.nc','r')<br>
hs_Q0_fut_sw=swh_Q0_fut_sw.variables['hs'][:]<br>
swh_Q3_fut_sw=netCDF4.Dataset('/data/cr1/jmitchel/Q3/swh/2050s/south_west/swh2050s_swest_annavg1D.nc','r')<br>
hs_Q3_fut_sw=swh_Q3_fut_sw.variables['hs'][:]<br>
swh_Q4_fut_sw=netCDF4.Dataset('/data/cr1/jmitchel/Q4/swh/2050s/south_west/swh2050s_swest_annavg1D.nc','r')<br>
hs_Q4_fut_sw=swh_Q4_fut_sw.variables['hs'][:]<br>
swh_Q14_fut_sw=netCDF4.Dataset('/data/cr1/jmitchel/Q14/swh/2050s/south_west/swh2050s_swest_annavg1D.nc','r')<br>
hs_Q14_fut_sw=swh_Q14_fut_sw.variables['hs'][:]<br>
swh_Q16_fut_sw=netCDF4.Dataset('/data/cr1/jmitchel/Q16/swh/2050s/south_west/swh2050s_swest_annavg1D.nc','r')<br>
hs_Q16_fut_sw=swh_Q16_fut_sw.variables['hs'][:]<br>
<br>
fit_Q0_sw=np.polyfit(hs_Q0_con_sw,hs_Q0_fut_sw,1)<br>
fit_fn_Q0_sw=np.poly1d(fit_Q0_sw)<br>
<br>
plt.plot(hs_Q0_con_sw,hs_Q0_fut_sw,'g.')<br>
plt.plot(hs_Q0_con_sw,fit_fn_Q0_sw(hs_Q0_con_sw),'g',label='Q0 no pert')<br>
<br>
fit_Q3_sw=np.polyfit(hs_Q3_con_sw,hs_Q3_fut_sw,1)<br>
fit_fn_Q3_sw=np.poly1d(fit_Q3_sw)<br>
<br>
plt.plot(hs_Q3_con_sw,hs_Q3_fut_sw,'b.')<br>
plt.plot(hs_Q3_con_sw,fit_fn_Q3_sw(hs_Q3_con_sw),'b',label='Q3 low sens')<br>
<br>
fit_Q4_sw=np.polyfit(hs_Q4_con_sw,hs_Q4_fut_sw,1)<br>
fit_fn_Q4_sw=np.poly1d(fit_Q4_sw)<br>
<br>
plt.plot(hs_Q4_con_sw,hs_Q4_fut_sw,'y.')<br>
plt.plot(hs_Q4_con_sw,fit_fn_Q4_sw(hs_Q4_con_sw),'y',label='Q4 low sens')<br>
<br>
fit_Q14_sw=np.polyfit(hs_Q14_con_sw,hs_Q14_fut_sw,1)<br>
fit_fn_Q14_sw=np.poly1d(fit_Q14_sw)<br>
<br>
plt.plot(hs_Q14_con_sw,hs_Q14_fut_sw,'r.')<br>
plt.plot(hs_Q14_con_sw,fit_fn_Q14_sw(hs_Q14_con_sw),'r',label='Q14 high sens')<br>
<br>
fit_Q16_sw=np.polyfit(hs_Q16_con_sw,hs_Q16_fut_sw,1)<br>
fit_fn_Q16_sw=np.poly1d(fit_Q16_sw)<br>
<br>
plt.plot(hs_Q16_con_sw,hs_Q16_fut_sw,'c.')<br>
plt.plot(hs_Q16_con_sw,fit_fn_Q16_sw(hs_Q16_con_sw),'c',label='Q16 high sens')<br>
<br>
plt.legend(loc='best')<br>
plt.xlabel('Significant Wave Height annual averages NW Scotland 1981-2010')<br>
plt.ylabel('Significant Wave Height annual averages NW Scotland 2040-2069')<br>
plt.title('Scatter plot of Significant Wave Height')<br>
plt.show()<br>
<br>
--<br>
<br>
What I would like to do is display the R squared value next to the line of best fits that I have made.<br>
<br>
Does anyone know how to do this with matplotlib?<br></blockquote><div><br></div><div class="gmail_default" style="color:rgb(0,0,0)">​You can add plain text or annotations with arrows using any of the API functions described here: <a href="http://matplotlib.org/1.3.1/users/text_intro.html">http://matplotlib.org/1.3.1/users/text_intro.html</a> (information specifically regarding the text call is here: <a href="http://matplotlib.org/1.3.1/api/pyplot_api.html#matplotlib.pyplot.text">http://matplotlib.org/1.3.1/api/pyplot_api.html#matplotlib.pyplot.text</a>)</div>
<div class="gmail_default" style="color:rgb(0,0,0)"><br></div><div class="gmail_default" style="color:rgb(0,0,0)">You can also use LaTeX typesetting here, so you can make the text something like r'$R^2$' to display R^2 with "nice" typesetting. (I typically use raw strings for matplotlib text strings with LaTeX formulas in them since LaTeX makes extensive use of the \ character.)</div>
<div class="gmail_default" style="color:rgb(0,0,0)"><br></div><div class="gmail_default" style="color:rgb(0,0,0)">The onus is on you, the programmer, to determine _where_ on the plot you want the text to appear.  Since you know what you are plotting, you can write a quick helper function that will compute the optimal (to you) location for the label to occur based on where things are drawn on the canvas.  There is a _lot_ of flexibility here so you should be able to get your text looking exactly how (and where) you want it.</div>
<div class="gmail_default" style="color:rgb(0,0,0)"><br></div><div class="gmail_default" style="color:rgb(0,0,0)">Hope this helps,</div><div class="gmail_default" style="color:rgb(0,0,0)">Jason</div><div class="gmail_default" style="color:rgb(0,0,0)">
<br></div></div>-- <br><div dir="ltr">Jason M. Swails<br>BioMaPS,<br>Rutgers University<br>Postdoctoral Researcher</div>
</div></div>