seaborn swarmplot中离散类别的可变间距

时间:2018-06-12 12:45:29

标签: python matplotlib seaborn

在seaborn的swarmplots中,有没有办法在离散轴上使用非均匀间距?

以下是一个例子:

import pandas as pd
import numpy as np
import seaborn as sns
data = pd.DataFrame({
    "x":np.concatenate([np.repeat("A",450), np.repeat("B",5), np.repeat("C",5), np.repeat("D",450)]),
    "y":np.random.randn(910)})
sns.swarmplot(x="x",y="y",data=data)

Swarmplot with two over-wide categories and two infrequent categories

在示例中,A和D类别溢出了图表。我可以减小点大小,但后来很难看到中间类别。更好的选择是设置轴间距,使频繁类别的空间大于稀有类别:

(样机) enter image description here

有没有办法用seaborn(或底层的matplotlib轴)做到这一点?

1 个答案:

答案 0 :(得分:0)

你可以手动创建一个更大的数字来绘制。 例如。

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
data = pd.DataFrame({
    "x":np.concatenate([np.repeat("A",450), np.repeat("B",5), np.repeat("C",5), np.repeat("D",450)]),
    "y":np.random.randn(910)})
plt.figure(figsize=(16,8))
sns.swarmplot(x="x",y="y",data=data)
plt.show()

enter image description here

只需使用figsize的比率,直到获得预期结果。