我希望使用sns.swarmplot
显示一段时间内的数据变化。我使用以下代码:
import seaborn as sns
import numpy as np
y = np.random.randint(5,size = 40)
time = np.repeat([1,2,3,100],10)
sns.swarmplot(time,y)
然而,这会将时间数据解释为分类,并均匀地传播群体。
有没有办法,群体不均匀分布?那与100相关的所有点都远在右边?
此解决方案是否也适用于sns.violinplot?
答案 0 :(得分:1)
一个(不是很优雅)解决方案是将所有分类数据提供给sns.swarmplot
import seaborn as sns
import numpy as np
y = np.random.randint(5,size = 40)
time = np.repeat([1,2,3,100],10)
# now add more categorical datas
time_all = np.append(time, np.arange(1,101))
y_all = np.append(y, np.nan*np.arange(100))
sns.swarmplot(time_all,y_all)
# hide all the ticks that are not wanted
plt.x_ticks([1,2,3,100],[1,2,3,100])