我正在使用 seaborn 生成 5 种不同条件及其对应值的箱线图。我希望根据它们的实际值而不是均匀间隔的箱线图,将 x 轴值绘制在彼此之间正确的距离内。我有一个大数据集,但为了简化我的问题,我用较小的数据集编造了一些数字。我有以下代码:
dff=pd.DataFrame()
dff['Concentration']=[150,150,150,150,300,300,300,300,525,525,525,525,600,600,600,600,650,650,650,650]
dff['Counts']=[0.677,0.703,0.800,0.705,1.0,0.906,1.11,0.877,1.255,1.38,1.25,1.38,1.4,1.5,1.6,1.667,1.65,1.66,1.70,1.599]
figxyz,ax=plt.subplots(1,1,figsize=(4,4))
sns.boxplot(dff['Concentration'],dff['Counts'],color='tan')
sns.swarmplot(dff['Concentration'],dff['Counts'],color='black')
我得到以下箱线图。我希望浓度之间的距离与实际数字之间的距离相对应。例如,150 到 300 箱线图之间的距离应该小于 300 到 525 之间的距离,最小距离应该在 600 到 650 之间。
我还尝试使用以下代码,它似乎移动了 x-ticks,但像这样将箱形图一直聚集在左侧。
ax.set_xticks(dff['Concentration'])