Python 如何在boxplot中更改y标签步长
我只想更改y轴上的标签以显示更多数字。例如,在0-40范围内,它显示数字0、10、20、30、40。 我想看到0,1,2,3,4。。。38, 39, 40. 此外,我想一个网格(支持线或它的名称)被显示 我的代码如下所示,其中我有一个数据帧,其中包含训练数据集名称、分类器名称和时间。 我正在为每个分类器创建一个箱线图,显示该分类器在所有数据集上花费的时间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
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)是的,这正是我要找的,尽管我不希望它以这种方式可编辑,但我想知道它如何准确地知道如何将任意标签与实际时间值对齐。如果我用了一系列的字母怎么办?不确定我是否正确地理解了你,但是像这样的东西?