Usiłuję zmienić etykiety x_ticks na tym wykresie. Chcę zamienić 0, 1, 2 na [„Drzewo decyzyjne”, „Losowy las”, „SVM na 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)
Wyjście wydrukowane:
locs [0. 0.2 0.4 0.6 0.8 1. ]
labels <a list of 6 Text xticklabel objects>
Edytuj Rozwiązanie:
Najlepszym sposobem była po prostu zmiana ramki danych, której użyłem na wykresie:
plot_df = plot_df.set_index([pd.Index(['Decision Tree','Random Forest','SVM with SMOTE'])])
plot_df
Również stylizacja kleszczy:
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)
1 odpowiedź
Po prostu usuń swoje set_xtickslabels
i zmień to w swoim kodzie:
plot_df.plot.bar(x=labels, ax=ax,width=0.5,stacked = False,fontsize = 11)
Podobne pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.