25

How can I position xlabel on top of the plot using something else than "tick_top" - that adds a tick to the x label, and I don't want it.

xlabel on the bottom with no tick: enter image description here

code:

import numpy as np; np.random.seed(0)
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
uniform_data = np.random.rand(10, 12)
ax = sns.heatmap(uniform_data, vmin=0, vmax=1)
plt.yticks(rotation=0)
plt.show()

xlabel on top but with tick: enter image description here

code:

import numpy as np; np.random.seed(0)
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
uniform_data = np.random.rand(10, 12)
ax = sns.heatmap(uniform_data, vmin=0, vmax=1)
plt.yticks(rotation=0)
ax.xaxis.tick_top() # x axis on top
ax.xaxis.set_label_position('top')
plt.show()
Kalanit
  • 835
  • 1
  • 9
  • 15

2 Answers2

26

Try this:

plt.tick_params(axis='both', which='major', labelsize=10, labelbottom = False, bottom=False, top = False, labeltop=True)

the parameter top=False means no ticks. :)

Frozhen
  • 361
  • 3
  • 2
6

Ok finally found.

Needs a

ax.tick_params(length=0)
Kalanit
  • 835
  • 1
  • 9
  • 15