Entfernen oder Ausblenden von Y-Achsen-Ticklabels aus einem Matplotlib / Seaborn-Plot

Sep 05 2020

Ich habe eine Handlung gemacht, die so aussieht

Ich möchte die Ticklabels entlang der y-Achse ausschalten. Und dafür benutze ich

plt.tick_params(labelleft=False, left=False)

Und jetzt sieht die Handlung so aus. Auch wenn die Etiketten ausgeschaltet sind, 1e67bleibt die Skala erhalten .

Durch Ausschalten der Skala 1e67würde die Handlung besser aussehen. Wie mache ich das?

Antworten

TrentonMcKinney Sep 05 2020 at 17:26
  • seabornwird zum Zeichnen des Plots verwendet, ist jedoch nur eine API auf hoher Ebene für matplotlib.
    • Die Funktionen zum Entfernen der Beschriftungen und Häkchen auf der y-Achse sind matplotlibMethoden.
  • Verwenden Sie nach dem Erstellen des Diagramms.set() .
  • .set(yticklabels=[]) sollte Häkchen entfernen.
    • Dies funktioniert nicht, wenn Sie verwenden .set_title(), aber Sie können verwenden.set(title='')
  • .set(ylabel=None) sollte die Achsenbeschriftung entfernen.
  • .tick_params(left=False) entfernt die Zecken.
  • Ähnliches gilt für die x-Achse: Wie entferne oder verstecke ich x-Achsen-Beschriftungen aus einem Seaborn / Matplotlib-Plot?

Beispiel 1

import seaborn as sns
import matplotlib.pyplot as plt

# load data
exercise = sns.load_dataset('exercise')
pen = sns.load_dataset('penguins')

# create figures
fig, ax = plt.subplots(2, 1, figsize=(8, 8))

# plot data
g1 = sns.boxplot(x='time', y='pulse', hue='kind', data=exercise, ax=ax[0])

g2 = sns.boxplot(x='species', y='body_mass_g', hue='sex', data=pen, ax=ax[1])

plt.show()

Etiketten entfernen

fig, ax = plt.subplots(2, 1, figsize=(8, 8))

g1 = sns.boxplot(x='time', y='pulse', hue='kind', data=exercise, ax=ax[0])

g1.set(yticklabels=[])  # remove the tick labels
g1.set(title='Exercise: Pulse by Time for Exercise Type')  # add a title
g1.set(ylabel=None)  # remove the axis label

g2 = sns.boxplot(x='species', y='body_mass_g', hue='sex', data=pen, ax=ax[1])

g2.set(yticklabels=[])  
g2.set(title='Penguins: Body Mass by Species for Gender')
g2.set(ylabel=None)  # remove the y-axis label
g2.tick_params(left=False)  # remove the ticks

plt.tight_layout()
plt.show()

Beispiel 2

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# sinusoidal sample data
sample_length = range(1, 1+1) # number of columns of frequencies
rads = np.arange(0, 2*np.pi, 0.01)
data = np.array([(np.cos(t*rads)*10**67) + 3*10**67 for t in sample_length])
df = pd.DataFrame(data.T, index=pd.Series(rads.tolist(), name='radians'), columns=[f'freq: {i}x' for i in sample_length])
df.reset_index(inplace=True)

# plot
fig, ax = plt.subplots(figsize=(8, 8))
ax.plot('radians', 'freq: 1x', data=df)

Etiketten entfernen

# plot
fig, ax = plt.subplots(figsize=(8, 8))
ax.plot('radians', 'freq: 1x', data=df)
ax.set(yticklabels=[])  # remove the tick labels
ax.tick_params(left=False)  # remove the ticks