无法更改matplotlib中的x刻度

yyhrrdl8  于 2023-03-03  发布在  其他
关注(0)|答案(2)|浏览(124)

我很难更改此图中的x_ticks标签。我想将0、1、2替换为['Decision Tree'、'Random Forest '、'SVM with SMOTE ']。

# Plotting
fig, ax = plt.subplots(1, 1, figsize=(14,6))

ax.set_xlabel("Machine learning model",fontsize=20)
ax.set_ylabel("Score",fontsize=20)
sns.set_style("whitegrid")
# plot_df.rename(index={0: 'Decision Tree', 1: 'Random Forest', 2: 'SVM with SMOTE'})

locs, labels = plt.xticks()
print("locs",locs)
print("labels",labels)

labels = ['Decision Tree','Random Forest','SVM with SMOTE']

ax.set_xticklabels(labels)

plot_df.plot.bar(ax=ax,width=0.5,stacked = False,fontsize = 11)

打印输出:

locs [0.  0.2 0.4 0.6 0.8 1. ]
labels <a list of 6 Text xticklabel objects>
pokxtpni

pokxtpni1#

只需删除您的set_xtickslabels并在代码中进行更改即可:

plot_df.plot.bar(x=labels, ax=ax,width=0.5,stacked = False,fontsize = 11)
carvr3hs

carvr3hs2#

最好的方法就是改变我在图中使用的 Dataframe :

plot_df = plot_df.set_index([pd.Index(['Decision Tree','Random Forest','SVM with SMOTE'])])
plot_df

此外,设置记号样式:

chart = plot_df.plot.bar(ax=ax, width=0.5, stacked=False, fontsize=11)
chart.set_xticklabels(
    chart.get_xticklabels(),
    rotation=45,
    horizontalalignment='right',
    fontsize = 16
)

此答案以edit的形式发布在CC BY-SA 4.0下的OP meerkat无法更改matplotlib中的x刻度的问题中。

相关问题