How to add extra sign to already existing x-ticks label matplotlib?

Question:

Currently, my histogram plot’s x-tick labels are [200. 400. 600. 800. 1000. 1200. 1400.]. It represents the rate in dollars. I want to add $ in prefix of these ticks like [$200 $400 $600 $800 $1000 $1200 $1400].

I tried this axs.xaxis.get_majorticklocs() to fetch x-tick labels and axs.xaxis.set_ticks([f"${amount:.0f}" for amount in axs[0, 1].xaxis.get_majorticklocs()]) to set the updated one. I understand that It will throw error as x-tick labels are now string.

Need help! kindly assist how can I do this.

Asked By: ApaarBawa

||

Answers:

You might be looking for set_xticklabels, which says:

Set the xaxis’ labels with list of string labels.

Here you want to set the ticks to [200. 400. 600. 800. 1000. 1200. 1400.] and the labels to your string values to ensure it is all aligned.

Answered By: Kraigolas

You can do it like this:

x = [*range(200,1600,200)]
y = [*range(7)]
fig, ax = plt.subplots()
ax.plot(x,y)
ax.set_xticks(ticks=x, labels=[f"${num}" for num in x])

enter image description here

Answered By: Rabinzel

You can use automatic StrMethodFormatter like this:

import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot(100*np.random.rand(20))

# Use automatic StrMethodFormatter
ax.xaxis.set_major_formatter('${x:1.2f}')

plt.show()

enter image description here

Answered By: AboAmmar
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.