Mark ticks in latex in matplotlib

后端 未结 2 495
星月不相逢
星月不相逢 2021-02-01 09:33

In a plot in matplotlib I specially want to mark points on the x-axis as pi/2, pi, 3pi/2 and so on in latex. How can I do it?

相关标签:
2条回答
  • 2021-02-01 09:52

    Another possibility is to update the pyplot rcParams, although this might be rather a hack than a legitimate way.

    import matplotlib.pyplot as plt
    import numpy as np
    
    cos = np.cos
    pi  = np.pi
    
    params = {'mathtext.default': 'regular' }  # Allows tex-style title & labels
    plt.rcParams.update(params)
    
    fig = plt.figure()
    ax  = fig.add_subplot(1, 1, 1)
    t   = np.linspace(0.0, 2*pi, 100)
    s   = cos(t)
    plt.plot(t, s)
    
    ax.set_xticks([0, pi/2, pi, 3*pi/2, 2*pi])
    ax.set_xticklabels(['$0$', r'$\frac{\pi}{2}$', r'$\pi$', r'$\frac{3\pi}{2}$', r'$2\pi$'])
    plt.show()
    

    enter image description here

    0 讨论(0)
  • 2021-02-01 09:57

    The plt.xticks command can be used to place LaTeX tick marks. See this doc page for more details.

    import matplotlib as mpl
    import matplotlib.pyplot as plt
    import numpy as np
    
    cos = np.cos
    pi = np.pi
    
    # This is not necessary if `text.usetex : True` is already set in `matplotlibrc`.    
    mpl.rc('text', usetex = True)
    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1)
    t = np.linspace(0.0, 2*pi, 100)
    s = cos(t)
    plt.plot(t, s)
    
    plt.xticks([0, pi/2, pi, 3*pi/2, 2*pi],
               ['$0$', r'$\frac{\pi}{2}$', r'$\pi$', r'$\frac{3\pi}{2}$', r'$2\pi$'])
    plt.show()
    

    enter image description here

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