seaborn/matplotlib:在一个图中显示不同的刻度范围

seaborn/matplotlib: showing different tick ranges in one plot

我创建了这样的箱线图:

f, ax = plt.subplots(figsize=(15,7))
sns.despine(bottom=True, left=True)

sns.boxplot(x=x)
ax.set(xlim=(0, 120))
ax.grid(linestyle='-', axis="x")
ax.xaxis.set_major_locator(ticker.MultipleLocator(24))
ax.set_axisbelow(True)
plt.show()

看起来像这样:

就像我已经在图片中标记的那样,我想要图表中特定部分的不同 xtick 范围。所以直到 24 的值应该是 ticker.MultipleLocator(8) 然后它应该继续 ticker.MultipleLocator(24).

由于不能混合使用多个定位器,因此有一种方法可以为每个定位器创建和组合比例。

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

tips = sns.load_dataset("tips")
fig, ax = plt.subplots(figsize=(15,7))
sns.despine(bottom=True, left=True)

g = sns.boxplot(x=tips['total_bill'])
ax.set(xlim=(0, 120))
ax.grid(linestyle='-', axis="x")

tickA = np.arange(0,24,8)
tickB = np.arange(24,120,24)
new_ticks = np.concatenate([tickA, tickB])
ax.set_xticks(new_ticks)

ax.set_axisbelow(True)

plt.show()