为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 matplotlib/seaborn 图中删除或隐藏 y 轴刻度标签

如何从 matplotlib/seaborn 图中删除或隐藏 y 轴刻度标签

宝慕林4294392 2023-07-18 10:12:21
我做了一个看起来像这样的情节我想关闭 y 轴上的刻度标签。为此,我正在使用plt.tick_params(labelleft=False, left=False)现在剧情是这样的。即使标签被关闭,秤1e67仍然存在。关闭比例1e67会让情节看起来更好。我怎么做?
查看完整描述

1 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

  • seaborn用于绘制绘图,但它只是matplotlib.

    • 为删除 y 轴标签和刻度而调用的函数是matplotlib方法。

  • 创建绘图后,使用.set().

  • .set(yticklabels=[])应该删除刻度标签。

    • 如果您使用,这不起作用.set_title(),但您可以使用.set(title='')

  • .set(ylabel=None)应删除轴标签。

  • .tick_params(left=False)将去除蜱虫。

  • 同样,对于 x 轴:如何从 seaborn / matplotlib 图中删除或隐藏 x 轴标签?

  • 测试于python 3.11pandas 1.5.2matplotlib 3.6.2,seaborn 0.12.1

实施例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()

//img1.sycdn.imooc.com/64b5f554000189dc05090476.jpg

删除标签

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

//img4.sycdn.imooc.com/64b5f5630001c80705750565.jpg

实施例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)


# or skip the previous two lines and plot df directly

# ax = df.plot(x='radians', y='freq: 1x', figsize=(8, 8), legend=False)

//img1.sycdn.imooc.com/64b5f57200015a9903790254.jpg

删除标签

# plot

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

ax.plot('radians', 'freq: 1x', data=df)


# or skip the previous two lines and plot df directly

# ax = df.plot(x='radians', y='freq: 1x', figsize=(8, 8), legend=False)


ax.set(yticklabels=[])  # remove the tick labels

ax.tick_params(left=False)  # remove the ticks

//img1.sycdn.imooc.com/64b5f57f000199c603570249.jpg

查看完整回答
反对 回复 2023-07-18
  • 1 回答
  • 0 关注
  • 426 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信