【问题标题】:How to remove or hide y-axis ticklabels from a matplotlib / seaborn plot如何从 matplotlib / seaborn 图中删除或隐藏 y 轴刻度标签
【发布时间】:2020-12-24 15:19:45
【问题描述】:

我做了一个像这样的情节

我想关闭沿 y 轴的刻度标签。为此,我正在使用

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

现在剧情是这样的。即使标签被关闭,比例 1e67 仍然存在。

关闭比例 1e67 会使情节看起来更好。我该怎么做?

【问题讨论】:

    标签: python matplotlib plot seaborn data-visualization


    【解决方案1】:
    • seaborn 用于绘制绘图,但它只是 matplotlib 的高级 API。
      • 为删除 y 轴标签和刻度而调用的函数是 matplotlib 方法。
    • 创建剧情后,使用.set()
    • .set(yticklabels=[]) 应该删除刻度标签。
      • 如果你使用.set_title(),这不起作用,但你可以使用.set(title='')
    • .set(ylabel=None) 应该删除轴标签。
    • .tick_params(left=False) 将删除刻度。
    • 同样,对于 x 轴:How to remove or hide x-axis labels from a seaborn / matplotlib plot?

    示例 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()
    

    移除标签

    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()
    

    示例 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)
    

    移除标签

    # 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
    

    【讨论】:

      猜你喜欢
      • 2020-02-16
      • 2020-12-16
      • 2022-10-20
      • 1970-01-01
      • 2012-03-14
      • 1970-01-01
      • 1970-01-01
      • 2013-06-18
      • 1970-01-01
      相关资源
      最近更新 更多