Superscript in Python plots

后端 未结 3 507
北海茫月
北海茫月 2020-12-13 06:18

I want to label my x axis at follows :

pylab.xlabel(\'metres 10^1\')

But I don\'t want to have the ^ symbol included .

pyla         


        
相关标签:
3条回答
  • 2020-12-13 06:33

    Alternatively, in python 3.6+, you can generate Unicode superscript and copy paste that in your code:

    ax1.set_ylabel('Rate (min⁻¹)')
    
    0 讨论(0)
  • 2020-12-13 06:56

    You just need to have the full expression inside the $. Basically, you need "meters $10^1$". You don't need usetex=True to do this (or most any mathematical formula).

    You may also want to use a raw string (e.g. r"\t", vs "\t") to avoid problems with things like \n, \a, \b, \t, \f, etc.

    For example:

    import matplotlib.pyplot as plt
    
    fig, ax = plt.subplots()
    ax.set(title=r'This is an expression $e^{\sin(\omega\phi)}$',
           xlabel='meters $10^1$', ylabel=r'Hertz $(\frac{1}{s})$')
    plt.show()
    

    enter image description here

    If you don't want the superscripted text to be in a different font than the rest of the text, use \mathregular (or equivalently \mathdefault). Some symbols won't be available, but most will. This is especially useful for simple superscripts like yours, where you want the expression to blend in with the rest of the text.

    import matplotlib.pyplot as plt
    
    fig, ax = plt.subplots()
    ax.set(title=r'This is an expression $\mathregular{e^{\sin(\omega\phi)}}$',
           xlabel='meters $\mathregular{10^1}$',
           ylabel=r'Hertz $\mathregular{(\frac{1}{s})}$')
    plt.show()
    

    enter image description here

    For more information (and a general overview of matplotlib's "mathtext"), see: http://matplotlib.org/users/mathtext.html

    0 讨论(0)
  • 2020-12-13 06:56

    If you want to write unit per meter (m^-1), use $m^{-1}$), which means -1 inbetween {}

    Example: plt.ylabel("Specific Storage Values ($m^{-1}$)", fontsize = 12 )

    0 讨论(0)
提交回复
热议问题