

Hi,
I am trying to oom in on the image data plotted in 2 subplots using matplotlib. However, the zooming in needs to take into consideration both the images which are being displayed in the subplot. If I have 2 images on the subplot, I can click any one of these images. I then get the x and y coordinates. But I am not sure how to open a new window with the clicked coordinates and 5 or 10 pixels around the clicked coordinates and display it in a new window. Could someone please help me out?
_______________________________________________
Matplotlibusers mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlibusers


You can't get that feature outofthebox, but it is possible to construct such a feature with some work. You can create callbacks functions that take x/y coordinates to create a new figure window with remade imshow()'s. You might want to consider picking up a copy of my book, "Interactive Applications using Matplotlib", particularly focusing on chapter 2 on the callback system.
I hope that helps! Ben Root
_______________________________________________
Matplotlibusers mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlibusers


I want to second Ben's email: I highly recommend his book. I fumbled around for a long time with minor interactive matplotlib features. Then I read his book and it completely clarified my mental model of mpl interactivity and, indeed, of GUIs in general. Thanks Ben!
Here's an excerpt that describes my situation quite well:
"""
Indeed, given that the primary audience for Matplotlib is scientific programmers
for whom GUIs are, at best, an afterthought, Matplotlib provides a gradual curve
to create fullfledged GUI applications. For simple GUI tasks, one can go quite far with Matplotlib without ever having to adopt a GUI platform. And, as we will see in the next chapter, taking those final steps into a GUI application would not require getting rid of any existing code.
"""
Juan.
On Tue, Apr 3, 2018, at 12:17 PM, Benjamin Root wrote:
You can't get that feature outofthebox, but it is possible to construct such a feature with some work. You can create callbacks functions that take x/y coordinates to create a new figure window with remade imshow()'s. You might want to consider picking up a copy of my book, "Interactive Applications using Matplotlib", particularly focusing on chapter 2 on the callback system.
I hope that helps!
I am trying to oom in on the image data plotted in 2 subplots using matplotlib. However, the zooming in needs to take into consideration both the images which are being displayed in the subplot. If I have 2 images on the subplot, I can click any one of these images. I then get the x and y coordinates. But I am not sure how to open a new window with the clicked coordinates and 5 or 10 pixels around the clicked coordinates and display it in a new window.
Could someone please help me out?
_______________________________________________
Matplotlibusers mailing list
_______________________________________________
Matplotlibusers mailing list
_______________________________________________
Matplotlibusers mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlibusers


hi i am workind on the thread "filling" since a cuple of months i did not use Matplotlib i have difficulties to get comfortable with simple lines of code for example (end of this mail)  why do the circle appear so big whereas the dimension of the picture are [0,5] for x and for y and the radius of the circle is 0.05 ?  why, if i cancel the paragraph named "oeil......", do the circle disappear ? thanks for your help...
figur generated :
lines of code :  import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl
# quelques paramètres par défaut plt.style.use('bmh') mpl.rcParams['font.family'] = 'STIXGeneral' plt.rcParams["font.size"] = 10
# dimensions à choisir xmin,xmax,ymin,ymax=0,5,0,5 (L,l)=(7,7)
# fenetrages divers Linch,linch=(L/2.54,l/2.54) fig, lafigure = plt.subplots(figsize=(Linch,linch)) Lx,x,Ly,y=[],xmin,[],ymin while (x<=xmax): Lx.append(x) x+=1 while (y<=ymax): Ly.append(y) y+=1
#oeil............. X1 = np.linspace(1np.sqrt(2),1+np.sqrt(2), 256,endpoint=True) Y1 = np.sqrt(2X1**2) lafigure.plot(X1, Y1, color="black", linewidth=0.5, linestyle="") lafigure.plot(X1, 1Y1, color="black", linewidth=0.5, linestyle="")
# tracé d'un cercle r=0.05 lafigure.add_patch(mpl.patches.Circle((r, r),1,color ='black', linewidth=0.5, fill=False,linestyle=""))
plt.axis('off') lafigure.spines['right'].set_visible(True) plt.show()
_______________________________________________
Matplotlibusers mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlibusers
––––––––––––––––––––––––––
Vincent Douce
:=: Mathoscope :=:
http://mathoscope.xyz 06°13°11°07°26
Bagnères de Bigorre 65200


Le 06/04/2018 à 06:29, Vincent Douce Mathoscope a écrit :
> hi
> i am workind on the thread "filling"
> since a cuple of months i did not use Matplotlib
> i have difficulties to get comfortable with simple lines of code
> for example (end of this mail)
>  why do the circle appear so big whereas the dimension of the picture
> are [0,5] for x and for y and the radius of the circle is 0.05 ?
* The dimensions of your *figure* are of 2.75 inches (7/2.54).
* [0, 5] for xmin, xmax etc. are your conventional units within axes,
not related to figsize.
* The radius of your Circle patch is 1 ; (0.05,0.05) is its center.
>  why, if i cancel the paragraph named "oeil......", do the circle
> disappear ?
>
* I don't see any disappearance. If you "close your eye", the two plots
of sqrt(whatever) are eliminated,, but the patch is still there. Only
Matplotlib redefines the scale of the plot, the circle becomes bigger,
and a smaller fragment is plotted.
Notice that you never fix the scales using axis(...).
Bon courage.
Jerzy Karczmarczuk
/Caen/
_______________________________________________
Matplotlibusers mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlibusers


Hi Vincent,
I think that Jerzy got the correct answer about your issue with the
circle patch. The docstrings reads indeed:
```
mpl.patches.Circle(xy, radius=5, **kwargs)
Create true circle at center *xy* = (*x*, *y*) with given *radius*.
```
I did not notice any disappearance when commenting the "oeil" section
either :/.
(Attached is a script based on yours that gives the attached PNG.)
Best regards,
Adrien
On 04/06/2018 01:01 AM, Jerzy Karczmarczuk wrote:
>
>
> Le 06/04/2018 à 06:29, Vincent Douce Mathoscope a écrit :
>> hi
>> i am workind on the thread "filling"
>> since a cuple of months i did not use Matplotlib
>> i have difficulties to get comfortable with simple lines of code
>> for example (end of this mail)
>>  why do the circle appear so big whereas the dimension of the picture
>> are [0,5] for x and for y and the radius of the circle is 0.05 ?
> * The dimensions of your *figure* are of 2.75 inches (7/2.54).
> * [0, 5] for xmin, xmax etc. are your conventional units within axes,
> not related to figsize.
> * The radius of your Circle patch is 1 ; (0.05,0.05) is its center.
>
>>  why, if i cancel the paragraph named "oeil......", do the circle
>> disappear ?
>>
> * I don't see any disappearance. If you "close your eye", the two plots
> of sqrt(whatever) are eliminated,, but the patch is still there. Only
> Matplotlib redefines the scale of the plot, the circle becomes bigger,
> and a smaller fragment is plotted.
> Notice that you never fix the scales using axis(...).
>
> Bon courage.
>
> Jerzy Karczmarczuk
> /Caen/
>
> _______________________________________________
> Matplotlibusers mailing list
> [hidden email]
> https://mail.python.org/mailman/listinfo/matplotlibusers_______________________________________________
Matplotlibusers mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlibusers


On Tue, Apr 3, 2018 at 9:56 AM Juan NunezIglesias < [hidden email]> wrote:
I want to second Ben's email: I highly recommend his book. I fumbled around for a long time with minor interactive matplotlib features. Then I read his book and it completely clarified my mental model of mpl interactivity and, indeed, of GUIs in general. Thanks Ben!
Here's an excerpt that describes my situation quite well:
"""
Indeed, given that the primary audience for Matplotlib is scientific programmers
for whom GUIs are, at best, an afterthought, Matplotlib provides a gradual curve
to create fullfledged GUI applications. For simple GUI tasks, one can go quite far with Matplotlib without ever having to adopt a GUI platform. And, as we will see in the next chapter, taking those final steps into a GUI application would not require getting rid of any existing code.
"""
On Tue, Apr 3, 2018, at 12:17 PM, Benjamin Root wrote:
You can't get that feature outofthebox, but it is possible to construct such a feature with some work. You can create callbacks functions that take x/y coordinates to create a new figure window with remade imshow()'s. You might want to consider picking up a copy of my book, "Interactive Applications using Matplotlib", particularly focusing on chapter 2 on the callback system.
I hope that helps!
I am trying to oom in on the image data plotted in 2 subplots using matplotlib. However, the zooming in needs to take into consideration both the images which are being displayed in the subplot. If I have 2 images on the subplot, I can click any one of these images. I then get the x and y coordinates. But I am not sure how to open a new window with the clicked coordinates and 5 or 10 pixels around the clicked coordinates and display it in a new window.
Could someone please help me out?
_______________________________________________
Matplotlibusers mailing list
_______________________________________________
Matplotlibusers mailing list
_______________________________________________
Matplotlibusers mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlibusers
_______________________________________________
Matplotlibusers mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlibusers

