0

我有一个正值和零的数据集,我想在对数刻度上显示。为了表示零,我使用 'symlog' 选项,但所有零值都映射到 swarmplot 上的一个点。如何解决?

import numpy as np
import seaborn as sns
import pandas as pd
import random
import matplotlib.pyplot as plt

n = 100
x = np.concatenate(([0]*n,np.linspace(0,1,n),[5]*n,np.linspace(10,100,n),np.linspace(100,1000,n)),axis=None)
data = pd.DataFrame({'value': x, 'category': random.choices([0,1,2,3], k=len(x))})

f, ax = plt.subplots(figsize=(10, 6))
ax.set_yscale("symlog",linthreshy=1.e-2)
ax.set_ylim(ymax=1000)
sns.swarmplot(x="category", y="value", data=data)
sns.despine(left=True)

链接到结果图

4

0 回答 0