automatic list of r'$2$'...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

automatic list of r'$2$'...

vincent_mathoscope
hi
i try this :
'''
Lx,x,Ly,y=[],xmin,[],ymin
Lrx,Lry=[],[]
while (x<=xmax):
    Lx.append(x)
    Lrx.append("$".join(["r'",str(x),"'"]))
    x+=1
while (y<=ymax):
    Ly.append(y)
    y+=1
'''
but it creates a Lrx list like this :
["r'$-2.5$'", "r'$-1.5$'", "r'$-0.5$'", "r'$0.5$'", "r'$1.5$'", "r'$2.5$'"]
and i want to obtain
[r'$-2.5$', r'$-1.5$', r'$-0.5$', r'$0.5$', r'$1.5$', r'$2.5$']

i guess that r is an operator to deal with the $..$ expressions but not understand how to fix my definition

thanks for your help

Vincent

        ––––––––––––––––––––––––––
                  Vincent Douce
               :=: Mathoscope :=:
             http://mathoscope.xyz
                 06°13°11°07°26
          Bagnères de Bigorre 65200





_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users
        ––––––––––––––––––––––––––
                  Vincent Douce
               :=: Mathoscope :=:
             http://mathoscope.xyz
                 06°13°11°07°26
          Bagnères de Bigorre 65200
Reply | Threaded
Open this post in threaded view
|

Re: automatic list of r'$2$'...

vincent.adrien@gmail.com
Well, isn't
```
Lx = np.arange(xmin, xmax + 1)
Lrx = [r"${}$".format(val) for val in Lx]  # aka 'list comprehension'
```
producing what you are looking for?

Adrien

PS: in the long term, another (more global) approach might be to
leverage Matplotlib's formatting capabilities like the ones introduced here:
http://matplotlib.org/gallery/ticks_and_spines/tick-formatters.html
or
https://matplotlib.org/tutorials/text/usetex.html
and then simply define the ticks (meaning their value) that you want.


On 12/13/2017 10:52 AM, Vincent Douce Mathoscope wrote:

> hi
> i try this :
> '''
> Lx,x,Ly,y=[],xmin,[],ymin
> Lrx,Lry=[],[]
> while (x<=xmax):
>      Lx.append(x)
>      Lrx.append("$".join(["r'",str(x),"'"]))
>      x+=1
> while (y<=ymax):
>      Ly.append(y)
>      y+=1
> '''
> but it creates a Lrx list like this :
> ["r'$-2.5$'", "r'$-1.5$'", "r'$-0.5$'", "r'$0.5$'", "r'$1.5$'", "r'$2.5$'"]
> and i want to obtain
> [r'$-2.5$', r'$-1.5$', r'$-0.5$', r'$0.5$', r'$1.5$', r'$2.5$']
>
> i guess that r is an operator to deal with the $..$ expressions but not
> understand how to fix my definition
>
> thanks for your help
>
> Vincent
>
>          ––––––––––––––––––––––––––
>                    Vincent Douce
>                 :=: Mathoscope :=:
> http://mathoscope.xyz
>                   06°13°11°07°26
>            Bagnères de Bigorre 65200
>
>
>
>
>
>
> _______________________________________________
> Matplotlib-users mailing list
> [hidden email]
> https://mail.python.org/mailman/listinfo/matplotlib-users
>

_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users
Reply | Threaded
Open this post in threaded view
|

Re: automatic list of r'$2$'...

Fabrice Silva-2
In reply to this post by vincent_mathoscope
Le mercredi 13 décembre 2017, Vincent Douce Mathoscope a écrit :

> hi
> i try this :
> '''
> Lx,x,Ly,y=[],xmin,[],ymin
> Lrx,Lry=[],[]
> while (x<=xmax):
>     Lx.append(x)
>     Lrx.append("$".join(["r'",str(x),"'"]))
>     x+=1
> while (y<=ymax):
>     Ly.append(y)
>     y+=1
> '''
> but it creates a Lrx list like this :
> ["r'$-2.5$'", "r'$-1.5$'", "r'$-0.5$'", "r'$0.5$'", "r'$1.5$'",
> "r'$2.5$'"]
> and i want to obtain
> [r'$-2.5$', r'$-1.5$', r'$-0.5$', r'$0.5$', r'$1.5$', r'$2.5$']

My suggestion

import numpy as np
tmpx = [(x, r'$%s' % x) for x in np.arange(xmin, xmax, 1)]
Lx, Lrx = zip(*tmpx)

Idem for the y stuff.
If you prefer to keep the while loop, change the Lrx line to
Lrx.append(r"$%s$" %x)
or
Lrx.append(r"${}$".format(x))
Note that you can add format specification in both solutions.


_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users
Reply | Threaded
Open this post in threaded view
|

Re: automatic list of r'$2$'...

vincent_mathoscope
thanks Fabrice
the problems seems to be :
i get for Lrx :
'$0', '$1', '$2'
instead of
r'$0', r'$1', r'$2'
the "r" disappears
as the r is not in the chain is seems not to be considered by python as an element to keep ?
Vincent

> Le 13 déc. 2017 à 20:42, Fabrice Silva <[hidden email]> a écrit :
>
> Le mercredi 13 décembre 2017, Vincent Douce Mathoscope a écrit :
>> hi
>> i try this :
>> '''
>> Lx,x,Ly,y=[],xmin,[],ymin
>> Lrx,Lry=[],[]
>> while (x<=xmax):
>>    Lx.append(x)
>>    Lrx.append("$".join(["r'",str(x),"'"]))
>>    x+=1
>> while (y<=ymax):
>>    Ly.append(y)
>>    y+=1
>> '''
>> but it creates a Lrx list like this :
>> ["r'$-2.5$'", "r'$-1.5$'", "r'$-0.5$'", "r'$0.5$'", "r'$1.5$'",
>> "r'$2.5$'"]
>> and i want to obtain
>> [r'$-2.5$', r'$-1.5$', r'$-0.5$', r'$0.5$', r'$1.5$', r'$2.5$']
>
> My suggestion
>
> import numpy as np
> tmpx = [(x, r'$%s' % x) for x in np.arange(xmin, xmax, 1)]
> Lx, Lrx = zip(*tmpx)
>
> Idem for the y stuff.
> If you prefer to keep the while loop, change the Lrx line to
> Lrx.append(r"$%s$" %x)
> or
> Lrx.append(r"${}$".format(x))
> Note that you can add format specification in both solutions.
>
>
> _______________________________________________
> Matplotlib-users mailing list
> [hidden email]
> https://mail.python.org/mailman/listinfo/matplotlib-users

        ––––––––––––––––––––––––––
                  Vincent Douce
               :=: Mathoscope :=:
             http://mathoscope.xyz
                 06°13°11°07°26
          Bagnères de Bigorre 65200





_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users
        ––––––––––––––––––––––––––
                  Vincent Douce
               :=: Mathoscope :=:
             http://mathoscope.xyz
                 06°13°11°07°26
          Bagnères de Bigorre 65200
Reply | Threaded
Open this post in threaded view
|

Re: automatic list of r'$2$'...

Christophe BAL (via GMAIL)

Hello.


One question: why do you use raw strings ?


One suggestion: with Python 3.6, you can use  fr"${x}$"  or simply  f"${x}$"  if you don't really need raw strings.


Le 23/12/2017 à 22:01, Vincent Douce Mathoscope a écrit :
thanks Fabrice
the problems seems to be :
i get for Lrx :
'$0', '$1', '$2'
instead of
r'$0', r'$1', r'$2'
the "r" disappears
as the r is not in the chain is seems not to be considered by python as an element to keep ?
Vincent

Le 13 déc. 2017 à 20:42, Fabrice Silva [hidden email] a écrit :

Le mercredi 13 décembre 2017, Vincent Douce Mathoscope a écrit :
hi
i try this :
'''
Lx,x,Ly,y=[],xmin,[],ymin
Lrx,Lry=[],[]
while (x<=xmax):
   Lx.append(x)
   Lrx.append("$".join(["r'",str(x),"'"]))
   x+=1
while (y<=ymax):
   Ly.append(y)
   y+=1
'''
but it creates a Lrx list like this :
["r'$-2.5$'", "r'$-1.5$'", "r'$-0.5$'", "r'$0.5$'", "r'$1.5$'",
"r'$2.5$'"]
and i want to obtain
[r'$-2.5$', r'$-1.5$', r'$-0.5$', r'$0.5$', r'$1.5$', r'$2.5$']
My suggestion

import numpy as np
tmpx = [(x, r'$%s' % x) for x in np.arange(xmin, xmax, 1)]
Lx, Lrx = zip(*tmpx)

Idem for the y stuff.
If you prefer to keep the while loop, change the Lrx line to
Lrx.append(r"$%s$" %x)
or
Lrx.append(r"${}$".format(x))
Note that you can add format specification in both solutions.


_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users
        ––––––––––––––––––––––––––
                  Vincent Douce
               :=: Mathoscope :=:
             http://mathoscope.xyz
                 06°13°11°07°26
          Bagnères de Bigorre 65200





_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users

-- 
Christophe BAL
Enseignant Agrégé de Mathématiques
Programmeur Python Amateur

_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users
Reply | Threaded
Open this post in threaded view
|

Re: automatic list of r'$2$'...

tcaswell
The 'r' prefix tells python to not try an interpret any escape sequences (such at \t for 'tab' and '\n' for a new line) as escape sequences.  This is part of the core python language, not Matplotlib or latex specific!

 If you did not use raw string and wanted to use θ (theta) as '$\theta$` python would go 'Ah ha! they asked for the string "$" "<TAB> "h" "e" "t" "a" "$" ' which is not what you wanted.  To get around this you can either do "$\\theta$" or r"$\theta$.   

Using raw strings is probably the better option as future versions of python will fail on unknown escape sequences so _every_ \ in your latex would have to be \\.

Tom 

On Sat, Dec 23, 2017 at 4:39 PM Christophe BAL (via GMAIL) <[hidden email]> wrote:

Hello.


One question: why do you use raw strings ?


One suggestion: with Python 3.6, you can use  fr"${x}$"  or simply  f"${x}$"  if you don't really need raw strings.


Le 23/12/2017 à 22:01, Vincent Douce Mathoscope a écrit :
thanks Fabrice
the problems seems to be :
i get for Lrx :
'$0', '$1', '$2'
instead of
r'$0', r'$1', r'$2'
the "r" disappears
as the r is not in the chain is seems not to be considered by python as an element to keep ?
Vincent

Le 13 déc. 2017 à 20:42, Fabrice Silva [hidden email] a écrit :

Le mercredi 13 décembre 2017, Vincent Douce Mathoscope a écrit :
hi
i try this :
'''
Lx,x,Ly,y=[],xmin,[],ymin
Lrx,Lry=[],[]
while (x<=xmax):
   Lx.append(x)
   Lrx.append("$".join(["r'",str(x),"'"]))
   x+=1
while (y<=ymax):
   Ly.append(y)
   y+=1
'''
but it creates a Lrx list like this :
["r'$-2.5$'", "r'$-1.5$'", "r'$-0.5$'", "r'$0.5$'", "r'$1.5$'",
"r'$2.5$'"]
and i want to obtain
[r'$-2.5$', r'$-1.5$', r'$-0.5$', r'$0.5$', r'$1.5$', r'$2.5$']
My suggestion

import numpy as np
tmpx = [(x, r'$%s' % x) for x in np.arange(xmin, xmax, 1)]
Lx, Lrx = zip(*tmpx)

Idem for the y stuff.
If you prefer to keep the while loop, change the Lrx line to
Lrx.append(r"$%s$" %x)
or
Lrx.append(r"${}$".format(x))
Note that you can add format specification in both solutions.


_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users
        ––––––––––––––––––––––––––
                  Vincent Douce
               :=: Mathoscope :=:
             http://mathoscope.xyz
                 06°13°11°07°26
          Bagnères de Bigorre 65200





_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users

-- 
Christophe BAL
Enseignant Agrégé de Mathématiques
Programmeur Python Amateur
_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users

_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users