对比excel数据在随机森林、逻辑回归、贝叶斯、决策树、KNN训练后在precision、recall、f1-score、support上的结果对比柱状图代码,precision、recall、f1-score、support的柱子要求颜色不一致,x轴的列明设置倾斜代码实现
时间: 2023-09-24 20:12:08 浏览: 191
下面是一个使用Python和Matplotlib库绘制柱状图来对比不同模型在precision、recall、f1-score和support上的结果的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 模型名称
models = ['Random Forest', 'Logistic Regression', 'Naive Bayes', 'Decision Tree', 'KNN']
# 指标名称
metrics = ['Precision', 'Recall', 'F1-score', 'Support']
# 每个模型在每个指标上的得分
scores = np.array([[0.80, 0.85, 0.83, 100],
[0.75, 0.78, 0.76, 120],
[0.82, 0.79, 0.80, 105],
[0.70, 0.72, 0.71, 95],
[0.85, 0.88, 0.86, 110]])
# 设置颜色
colors = ['blue', 'green', 'orange', 'red']
# 绘制柱状图
fig, ax = plt.subplots()
width = 0.2 # 柱子的宽度
x = np.arange(len(models)) # x轴坐标
for i in range(len(metrics)):
ax.bar(x + i*width, scores[:, i], width, label=metrics[i], color=colors[i % len(colors)])
# 设置图表标题和坐标轴标签
ax.set_title('Model Performance Comparison')
ax.set_xlabel('Models')
ax.set_ylabel('Scores')
# 设置x轴刻度标签,并倾斜45度
ax.set_xticks(x + (len(metrics) - 1) * width / 2)
ax.set_xticklabels(models, rotation=45, ha='right')
# 添加图例
ax.legend()
# 展示图表
plt.show()
```
这段代码会生成一个柱状图,横轴表示不同的模型,纵轴表示指标的得分。每个柱子代表一个指标,不同颜色的柱子表示不同的指标。同时,为了满足你的需求,我添加了颜色不一致的要求,并设置了倾斜45度的x轴列名。你可以根据自己的数据和需求进行相应的修改和定制化。
阅读全文