<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"MS ゴシック";
        panose-1:2 11 6 9 7 2 5 8 2 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:游ゴシック;
        panose-1:2 11 4 0 0 0 0 0 0 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"MS Pゴシック";
        panose-1:2 11 6 0 7 2 5 8 2 4;}
@font-face
        {font-family:"\@游ゴシック";
        panose-1:2 11 4 0 0 0 0 0 0 0;}
@font-face
        {font-family:"\@MS Pゴシック";}
@font-face
        {font-family:"\@MS ゴシック";
        panose-1:2 11 6 9 7 2 5 8 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0mm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"MS Pゴシック";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
code
        {mso-style-priority:99;
        font-family:"MS ゴシック";}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0mm;
        mso-margin-bottom-alt:auto;
        margin-left:0mm;
        font-size:12.0pt;
        font-family:"MS Pゴシック";}
span.20
        {mso-style-type:personal-reply;
        font-family:游ゴシック;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:游ゴシック;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:99.25pt 30.0mm 30.0mm 30.0mm;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:758529670;
        mso-list-template-ids:-1345836858;}
ol
        {margin-bottom:0mm;}
ul
        {margin-bottom:0mm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026">
<v:textbox inset="5.85pt,.7pt,5.85pt,.7pt" />
</o:shapedefaults></xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=JA link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:游ゴシック'>Ben and other developers<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:游ゴシック'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:游ゴシック'>I confirmed that the interactive Matplotlib has most basic functions I need. I wrote a simple javascript to speak English or Japanese and also to recognize voice like x-axis, y-axis, line-1 etc. I haven’t written code to make beep sounds changing volume and tone.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:游ゴシック'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:游ゴシック'>With my limited knowledge, I couldn’t figure out mixing javascript with python in a same Jupyter cell. So I have been thinking to use the execjs package and define functions for TTS and voice recognition.  Then I can call these functions from python.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:游ゴシック'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:游ゴシック'>Once I understand these basic strategy I would like to find a coding pro and ask to make a prototype package. <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:游ゴシック'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:游ゴシック'>Meantime I am exploring some way to voice Jupyter Notebook. The easiest way for me is to convert the notebook to an html in which links are made to individual cells. If there is a way to set Jupyter ignore <a href …>, my scheme may work.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:游ゴシック'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:游ゴシック'>Thank you for assistance.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:游ゴシック'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:游ゴシック'>Tune Kamae<o:p></o:p></span></p><p class=MsoNormal><a name="_MailEndCompose"><span lang=EN-US style='font-size:11.0pt;font-family:游ゴシック'><o:p> </o:p></span></a></p><span style='mso-bookmark:_MailEndCompose'></span><p class=MsoNormal><b><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri",sans-serif'> Benjamin Root [mailto:ben.v.root@gmail.com] <br><b>Sent:</b> Thursday, September 28, 2017 1:39 AM<br><b>To:</b> Thomas Caswell <tcaswell@gmail.com><br><b>Cc:</b> Jody Klymak <jklymak@uvic.ca>; Tune Kamae <tune.kamae@gmail.com>; matplotlib-devel@python.org<br><b>Subject:</b> Re: [Matplotlib-devel] Producing plots with objects<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><div><div><div><div><div><div><p class=MsoNormal style='margin-bottom:12.0pt'><span lang=EN-US>Tune,<o:p></o:p></span></p></div><p class=MsoNormal style='margin-bottom:12.0pt'><span lang=EN-US>That sounds like a fantastic project, and I absolutely *love* the idea! As a low-vision person myself, I understand the need for such applications. The last time I did anything like this for other visually-impaired students, I used foam pads and a mixture of sand and glue to teach students the shape of the letters of the alphabet by tracing their fingers along the rough parts of the foam pad. Luckily, the alphabet doesn't change, so I can just have a single set of them. But for mathematical formulas, you would certainly need something dynamic to help with exploration of the many kinds of mathematical formulas.<o:p></o:p></span></p></div><p class=MsoNormal style='margin-bottom:12.0pt'><span lang=EN-US>The basic idea here would be a program that would have a some plotted curve (fetched from the object returned by the call to `plt.plot()`), and a callback function attached to the 'button_press' event (assuming that is what a touchscreen reports screen touches as). In the callback function, you would have the x/y coordinates of the press event, and you would have the curve as a stored object (either as a global or some such). You would then calculate the distance between the x/y of the event, and the curve, and then activate a tone (I would assume python has some sort of sound-playing package somewhere). You can then deactivate the tone on the 'button_release' event (a second callback). There is also a 'mouse_move' event, if I remember correctly, so you can update the tone as the finger drags along the screen.<o:p></o:p></span></p></div><p class=MsoNormal style='margin-bottom:12.0pt'><span lang=EN-US>Let me know if you have more questions!<o:p></o:p></span></p></div><p class=MsoNormal><span lang=EN-US>Cheers!<o:p></o:p></span></p></div><p class=MsoNormal style='margin-bottom:12.0pt'><span lang=EN-US>Ben Root<o:p></o:p></span></p><div><div><div><div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p></div></div></div></div></div><div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><div><p class=MsoNormal><span lang=EN-US>On Wed, Sep 27, 2017 at 1:11 AM, Thomas Caswell <<a href="mailto:tcaswell@gmail.com" target="_blank">tcaswell@gmail.com</a>> wrote:<o:p></o:p></span></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0mm 0mm 0mm 6.0pt;margin-left:4.8pt;margin-right:0mm'><div><p class=MsoNormal><span lang=EN-US>Ben Root wrote a book on interactive figures <a href="https://www.amazon.com/Interactive-Applications-using-Matplotlib-Benjamin/dp/1783988843" target="_blank">https://www.amazon.com/Interactive-Applications-using-Matplotlib-Benjamin/dp/1783988843</a><o:p></o:p></span></p><div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p></div><div><p class=MsoNormal><span lang=EN-US>Also see the 03 tutorial on picking in <a href="https://github.com/tacaswell/interactive_mpl_tutorial" target="_blank">https://github.com/tacaswell/interactive_mpl_tutorial</a><o:p></o:p></span></p></div><div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p></div><div><p class=MsoNormal><span lang=EN-US>Tom<o:p></o:p></span></p></div></div><div><div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><div><div><p class=MsoNormal><span lang=EN-US>On Tue, Sep 26, 2017 at 2:16 PM Jody Klymak <<a href="mailto:jklymak@uvic.ca" target="_blank">jklymak@uvic.ca</a>> wrote:<o:p></o:p></span></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0mm 0mm 0mm 6.0pt;margin-left:4.8pt;margin-right:0mm'><div><div><div><p><span lang=EN-US style='font-family:"Arial",sans-serif'>Sure you can do this, plus or minus the Windows 10 interaction which I know nothing about. Once you figure to how to plot what you want, have a look at:<o:p></o:p></span></p><p><span lang=EN-US style='font-family:"Arial",sans-serif'><a href="https://matplotlib.org/users/event_handling.html" target="_blank">https://matplotlib.org/users/event_handling.html</a><o:p></o:p></span></p><p><span lang=EN-US style='font-family:"Arial",sans-serif'>to see how to make the plot respond to </span><code><span lang=EN-US>button_press_event</span></code><span lang=EN-US style='font-family:"Arial",sans-serif'> or </span><code><span lang=EN-US>motion_notify_event</span></code><span lang=EN-US style='font-family:"Arial",sans-serif'>.<o:p></o:p></span></p><p><span lang=EN-US style='font-family:"Arial",sans-serif'>Cheers, Jody<o:p></o:p></span></p></div></div></div><div><div><div><p><span lang=EN-US style='font-family:"Arial",sans-serif'>On 25 Sep 2017, at 2:40, Tune Kamae wrote:<o:p></o:p></span></p></div></div></div><div><div><blockquote style='border:none;border-left:solid #5855D5 1.5pt;padding:0mm 0mm 0mm 4.0pt;margin-left:0mm;margin-right:0mm;margin-bottom:3.75pt'><div id="m_-4326134252488897046m_-65780502287528387805A5FFE44-0619-442B-A024-028DC8684D2D"><div><div><p style='margin:0mm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph'><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#5855D5'>Hi,<o:p></o:p></span></p><p style='margin:0mm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph'><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#5855D5'> <o:p></o:p></span></p><p style='margin:0mm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph'><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#5855D5'>My knowledge on matplotlib is limited and may be using wrong terminology.<o:p></o:p></span></p><p style='margin:0mm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph'><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#5855D5'>However my goal is quite clear. What I don’t know is where to post my question.<o:p></o:p></span></p><p style='margin:0mm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph'><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#5855D5'>If this is not the right mailing list, please forgive me and suggest the right mailing list.<o:p></o:p></span></p><p style='margin:0mm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph'><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#5855D5'> <o:p></o:p></span></p><p style='margin:0mm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph'><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#5855D5'>My goal:<o:p></o:p></span></p><ol style='margin-top:0mm' start=1 type=1><li class=MsoNormal style='color:#5855D5;text-align:justify;text-justify:inter-ideograph;mso-list:l0 level1 lfo1'><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif'>Make a plot with all elements accessible as objects like the one Excel produces.<o:p></o:p></span></li><li class=MsoNormal style='color:#5855D5;text-align:justify;text-justify:inter-ideograph;mso-list:l0 level1 lfo1'><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif'>Then by touching anywhere on screen (assuming Win10 with a touch screen), one will know how close is the touch location to a curve or the x-axis.<o:p></o:p></span></li><li class=MsoNormal style='color:#5855D5;text-align:justify;text-justify:inter-ideograph;mso-list:l0 level1 lfo1'><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif'>If such a plot can be put out, I can program for the blind students follow a line by producing sound.<o:p></o:p></span></li><li class=MsoNormal style='color:#5855D5;text-align:justify;text-justify:inter-ideograph;mso-list:l0 level1 lfo1'><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif'>They can follow any one of multiple curves in a plot and can feel what a sinusoidal curve is.<o:p></o:p></span></li></ol><p style='mso-margin-top-alt:0mm;margin-right:0mm;margin-bottom:0mm;margin-left:18.0pt;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph'><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#5855D5'> <o:p></o:p></span></p><p style='mso-margin-top-alt:0mm;margin-right:0mm;margin-bottom:0mm;margin-left:18.0pt;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph'><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#5855D5'>I would greatly appreciate if someone can guide me along this direction.<o:p></o:p></span></p><p style='mso-margin-top-alt:0mm;margin-right:0mm;margin-bottom:0mm;margin-left:18.0pt;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph'><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#5855D5'> <o:p></o:p></span></p><p style='mso-margin-top-alt:0mm;margin-right:0mm;margin-bottom:0mm;margin-left:18.0pt;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph'><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#5855D5'>Tune Kamae<o:p></o:p></span></p><p style='margin:0mm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph'><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#5855D5'> <o:p></o:p></span></p><p style='margin:0mm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph'><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#5855D5'>Windows 10 </span><span style='font-size:10.5pt;color:#5855D5'>版の</span><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#5855D5'><a href="https://go.microsoft.com/fwlink/?LinkId=550986" target="_blank"><span lang=EN-US style='font-family:"MS Pゴシック"'><span lang=EN-US>メール</span></span></a></span><span style='font-size:10.5pt;color:#5855D5'>から送信</span><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#5855D5'><o:p></o:p></span></p><p style='margin:0mm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph'><span lang=EN-US style='font-family:"Arial",sans-serif;color:#5855D5'> </span><span lang=EN-US style='font-size:10.5pt;font-family:"Arial",sans-serif;color:#5855D5'><o:p></o:p></span></p></div></div></div></blockquote><div><blockquote style='border:none;border-left:solid #5855D5 1.5pt;padding:0mm 0mm 0mm 4.0pt;margin-left:0mm;margin-right:0mm;margin-bottom:3.75pt'><p><span lang=EN-US style='font-family:"Arial",sans-serif;color:#5855D5'>_______________________________________________<br>Matplotlib-devel mailing list<br><a href="mailto:Matplotlib-devel@python.org" target="_blank">Matplotlib-devel@python.org</a><br><a href="https://mail.python.org/mailman/listinfo/matplotlib-devel" target="_blank">https://mail.python.org/mailman/listinfo/matplotlib-devel</a><o:p></o:p></span></p></blockquote></div></div></div><p class=MsoNormal><span lang=EN-US>_______________________________________________<br>Matplotlib-devel mailing list<br><a href="mailto:Matplotlib-devel@python.org" target="_blank">Matplotlib-devel@python.org</a><br><a href="https://mail.python.org/mailman/listinfo/matplotlib-devel" target="_blank">https://mail.python.org/mailman/listinfo/matplotlib-devel</a><o:p></o:p></span></p></blockquote></div></div></div><p class=MsoNormal style='margin-bottom:12.0pt'><span lang=EN-US><br>_______________________________________________<br>Matplotlib-devel mailing list<br><a href="mailto:Matplotlib-devel@python.org">Matplotlib-devel@python.org</a><br><a href="https://mail.python.org/mailman/listinfo/matplotlib-devel" target="_blank">https://mail.python.org/mailman/listinfo/matplotlib-devel</a><o:p></o:p></span></p></blockquote></div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p></div></div></body></html>