在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)
在示例中,A和D类别溢出了图表。我可以减小点大小,但后来很难看到中间类别。更好的选择是设置轴间距,使频繁类别的空间大于稀有类别:
有没有办法用seaborn(或底层的matplotlib轴)做到这一点?
答案 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()
只需使用figsize
的比率,直到获得预期结果。