[Python] Specify format of floats for tick labels

Discussão em 'Python' iniciado por Stack, Fevereiro 20, 2025.

  1. Stack

    Stack Membro Participativo

    I am trying to set the format to two decimal numbers in a matplotlib subplot environment. Unfortunately, I do not have any idea how to solve this task.

    To prevent using scientific notation on the y-axis I used ScalarFormatter(useOffset=False) as you can see in my snippet below. I think my task should be solved by passing further options/arguments to the used formatter. However, I could not find any hint in matplotlib's documentation.

    How can I set two decimal digits or none (both cases are needed)? I am not able to provide sample data, unfortunately.


    -- SNIPPET --

    f, axarr = plt.subplots(3, sharex=True)

    data = conv_air
    x = range(0, len(data))

    axarr[0].scatter(x, data)
    axarr[0].set_ylabel('$T_\mathrm{air,2,2}$', size=FONT_SIZE)
    axarr[0].yaxis.set_major_locator(MaxNLocator(5))
    axarr[0].yaxis.set_major_formatter(ScalarFormatter(useOffset=False))
    axarr[0].tick_params(direction='out', labelsize=FONT_SIZE)
    axarr[0].grid(which='major', alpha=0.5)
    axarr[0].grid(which='minor', alpha=0.2)

    data = conv_dryer
    x = range(0, len(data))

    axarr[1].scatter(x, data)
    axarr[1].set_ylabel('$T_\mathrm{dryer,2,2}$', size=FONT_SIZE)
    axarr[1].yaxis.set_major_locator(MaxNLocator(5))
    axarr[1].yaxis.set_major_formatter(ScalarFormatter(useOffset=False))
    axarr[1].tick_params(direction='out', labelsize=FONT_SIZE)
    axarr[1].grid(which='major', alpha=0.5)
    axarr[1].grid(which='minor', alpha=0.2)

    data = conv_lambda
    x = range(0, len(data))

    axarr[2].scatter(x, data)
    axarr[2].set_xlabel('Iterationsschritte', size=FONT_SIZE)
    axarr[2].xaxis.set_major_locator(MaxNLocator(integer=True))
    axarr[2].set_ylabel('$\lambda$', size=FONT_SIZE)
    axarr[2].yaxis.set_major_formatter(ScalarFormatter(useOffset=False))
    axarr[2].yaxis.set_major_locator(MaxNLocator(5))
    axarr[2].tick_params(direction='out', labelsize=FONT_SIZE)
    axarr[2].grid(which='major', alpha=0.5)
    axarr[2].grid(which='minor', alpha=0.2)

    Continue reading...

Compartilhe esta Página