分类轴标签而不是箱形图的数字?

Categorical axis labels instead of numbers for box plot?

我想生成一个带有 cmap 颜色填充框的水平箱线图,我发现了这个:

我修改了代码,以便在索引处包含类别,如下所示:

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

# Random test data
test_data_df = pd.DataFrame([np.random.normal(mean, 1, 10) for mean in range(10)])
index = ["a","b","c","d","e","f","g","h","i","j"]
test_data_df.index = index

fig, axes = plt.subplots(figsize=(5, 5))

# Horizontal box plot
bplot = axes.boxplot(test_data_df,
                     vert=False,   # vertical box aligmnent
                     patch_artist=True)   # fill with color

# Fill with colors
cmap = cm.ScalarMappable(cmap='nipy_spectral')
test_mean = [np.mean(x) for x in test_data]
for patch, color in zip(bplot['boxes'], cmap.to_rgba(test_mean)):
    patch.set_facecolor(color)

plt.show()

如何修改代码以使用索引 ["a","b","c","d","e","f","g","h","i","j"] 作为 y 轴标签?

谢谢!

如评论所述,您可以 set_yticklabels 到您的 index 列表:

axes.set_yticklabels(index)