Если я вас правильно понял, вам нужны вертикальные белые линии сетки вместо горизонтальных линий, которые вы получаете в настоящее время.Это один из способов сделать это:
Создать объект оси ax
и затем присвоить его sns.boxplot
.Затем вы можете выбрать, какие линии сетки показывать, используя логический аргумент для ax.xaxis.grid
и ax.yaxis.grid
.Поскольку вам нужны вертикальные линии сетки, отключите y-сетку (False
) и включите x-grid (True
).
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import numpy.random as rnd
fig, ax = plt.subplots() # define the axis object here
some_x=[1,2,3,7,9,10,11,12,15,18]
data_for_each_x=[]
for i in range(0, len(some_x)):
rand_int=rnd.randint(10,30)
data_for_each_x.append([np.random.randn(rand_int)])
sns.set()
sns.boxplot(data=data_for_each_x, showfliers=False, ax=ax) # pass the ax object here
ax.yaxis.grid(False) # Hide the horizontal gridlines
ax.xaxis.grid(True) # Show the vertical gridlines
В случае, если вы хотите, чтобы отображались как x, так иy сетки, используйте ax.grid(True)
![enter image description here](https://i.stack.imgur.com/vbySU.png)