Python 如何在boxplot中更改y标签步长

Python 如何在boxplot中更改y标签步长,python,pandas,matplotlib,boxplot,Python,Pandas,Matplotlib,Boxplot,我只想更改y轴上的标签以显示更多数字。例如,在0-40范围内,它显示数字0、10、20、30、40。 我想看到0,1,2,3,4。。。38, 39, 40. 此外,我想一个网格(支持线或它的名称)被显示 我的代码如下所示,其中我有一个数据帧,其中包含训练数据集名称、分类器名称和时间。 我正在为每个分类器创建一个箱线图,显示该分类器在所有数据集上花费的时间 import pandas as pd import numpy as np import matplotlib as mpl import

我只想更改y轴上的标签以显示更多数字。例如,在0-40范围内,它显示数字0、10、20、30、40。 我想看到0,1,2,3,4。。。38, 39, 40. 此外,我想一个网格(支持线或它的名称)被显示

我的代码如下所示,其中我有一个数据帧,其中包含训练数据集名称、分类器名称和时间。 我正在为每个分类器创建一个箱线图,显示该分类器在所有数据集上花费的时间

import pandas as pd
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt


## agg backend is used to create plot as a .png file
mpl.use('agg')

# read dataset
data = pd.read_csv("classifier_times_sml.csv", ";")
# extract data
g = data.sort_values("time", ascending=False)[["classifier", "train", "time"]].groupby("classifier")

# Create a figure instance
fig = plt.figure(1, figsize=(20, 30))
# Create an axes instance
ax = fig.add_subplot(111)


labels = []
times = []
counter = 0
for group, group_df in g:
    # Create the boxplot

    times.append( np.asarray(group_df["time"]) )
    labels.append(group)

# Create the boxplot
bp = ax.boxplot(times, showfliers=False )
ax.set_xticklabels(labels, rotation=90)


# Save the figure
fig.savefig('times_sml.png', bbox_inches='tight')
我一直在苦苦寻找,没有找到任何有用的选项。此处不允许ax.boxplot(…)的网格选项。我做错了什么?

使用
ax.set_-yticks(np.arange(min,max,step))
plt.yticks(np.arange(min,max,step))

ax.grid(True)
打开网格

你在找这样的东西吗

import pandas as pd, numpy as np
import matplotlib.pyplot as plt
import seaborn as sns;sns.set()

from numpy import arange

data = np.random.randint(0,40,size=40)
fig = plt.figure(1, figsize=(20, 30))
ax = fig.add_subplot(111)
ax.boxplot(data)  

ax.set_yticks(np.arange(0, 40, 1.0))
ax.grid(True)
plt.show()  

如果添加
ax.grid(True)
,您会收到一个错误?不,我实际上是在尝试调用ax.boxplot(…,grid=True)是的,这正是我要找的,尽管我不希望它以这种方式可编辑,但我想知道它如何准确地知道如何将任意标签与实际时间值对齐。如果我用了一系列的字母怎么办?不确定我是否正确地理解了你,但是像这样的东西?