【发布时间】:2022-10-24 17:14:48
【问题描述】:
即使为零或接近零,我也试图显示结果的值,但是我无法获得显示值的图。如何让 matplotlib 显示这些情况的栏?我尝试调整图的底部,使其可能显示零值,但条形的长度仍然为零。
import matplotlib.pyplot as plt
results = [0.7, 0, 0.8, 0.85, 0.6]
n_groups = 5
fig, ax = plt.subplots()
index = np.arange(n_groups)
bar_width = 0.25
opacity = 0.8
plt.ylim(top=1.05,bottom=-0.01)
rects1 = plt.bar(index, results, bar_width,
alpha=opacity,
bottom=-0.1)
plt.xlabel('Algorithm')
plt.ylabel('Accuracy')
plt.title('Model Comparison')
plt.xticks(index, ('SVM', 'KNN', 'DT', 'RF', 'oSVC'))
plt.show()
【问题讨论】:
-
欢迎来到 SO!您是否考虑将值添加为条形顶部的标签?请查看here 中的示例。
-
是的,我考虑过这一点。问题在于,对于我的图表,一张图表上最多有 64 个条形图。因此,为值添加文本看起来不太好,最终会有点局促。
-
Matplotlib 不会显示任何高度为 0 的条,我认为这是有道理的。但是,我知道如果您的值像 0.001,它也不会出现。我做对了吗?
-
我已将图表的底部减少到 -0.01,其想法是允许 Matplotlib 绘制值为零的条形图,因为这应该使它们的长度为 0.01。但是,条形图仍未显示在条形图上。
标签: python matplotlib bar-chart