这就是我最初是通过逻辑回归coefs_及其关联的列标签创建列表的方式。
#Create lists
column_labels = X.columns.tolist()
coef = logreg.coef_.squeeze().tolist()
# Zip together
labels_coef = list(zip(column_labels, coef))
#Sort them and present them as a list
sorted_labels = sorted(labels_coef, key=lambda x: x[1])
#Plotted the bar chart
plt.barh(*zip(* sorted(sorted_labels[:5] +sorted_labels[-5:],key=lambda x: x[1] )))
#or
#plt.barh(*zip(* (sorted_labels[:5] +sorted_labels[-5:])))
#Show plot
plt.show()
但是如何将它们都按值的升序打印在同一张图上?
显然,这并不能解决问题
您可以附加前五个和最后五个并将它们绘制在一起:
plt.barh(*zip(* (sorted_labels[:5] +sorted_labels[-5:])))
编辑:排序问题在此问题中被提出:
有2种建议的解决方案:
labels, values = zip(*(sorted_labels[:5] +sorted_labels[-5:])) plt.barh(range(len(labels)),values) plt.yticks(range(len(values)),values) plt.show()
旁路使用问题pandas
的DataFrame
:
df = pd.DataFrame(list(zip(labels,values))).set_index(1)
df.plot.barh()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句