【问题标题】:Plotting two dictionaries in one bar chart with Matplotlib [duplicate]使用 Matplotlib 在一个条形图中绘制两个字典 [重复]
【发布时间】:2018-02-08 15:17:19
【问题描述】:

我有这两个字典,我想使用 Matplotlib 在同一个条形图中绘制:

accuracy_pre = {"Random Forest": rf_accuracy_score, "Logistic Regression": log_accuracy_score, "KNN": knn_accuracy_score}

accuracy_post = {"Random Forest": gs_rf_accuracy_score, "Logistic Regression": gs_logmodel_accuracy_score, "KNN": knn_accuracy_score_iter}

字典值是整数变量。两个字典有相同的键,所以总共会有 6 个小节,但属于同一个键的那些会紧挨着。 我可以创建两个单独的条形图,但我无法将它们放在一起。有人可以帮我吗?

这是我已有的条形图的代码:

X = np.arange(len(accuracy_pre))
plt.bar(X, accuracy_pre.values(), align='center', width=0.5)
plt.xticks(X, accuracy_pre.keys()) 
plt.title("Accuracy score - before grid search", fontsize=17)
plt.ylim(0, 1)

【问题讨论】:

  • 这是一个怎样的直方图?你是说条形图吗?
  • @DYZ 是的条形图,对不起,我的错
  • 两个字典有相同的变量名。这不可能。其中之一将无法访问。
  • @DYZ 现在他们都不同了
  • 这是否是一个重复的问题是有争议的,因为绘制分类 x 坐标与绘制实值 x 坐标略有不同。不幸的是,我无法在这里直接回答,对于替代解决方案,您可以查看my answer in the linked question。

标签: python dictionary matplotlib bar-chart


【解决方案1】:

我稍微调整了您的代码以获得所需的情节。希望这会有所帮助!

import numpy as np
import matplotlib.pyplot as plt

#sample data
accuracy_pre = {"Random Forest": 1, "Logistic Regression": 2, "KNN": 3}
accuracy_post = {"Random Forest": 4, "Logistic Regression": 5, "KNN": 6}

X = np.arange(len(accuracy_pre))
ax = plt.subplot(111)
ax.bar(X, accuracy_pre.values(), width=0.2, color='b', align='center')
ax.bar(X-0.2, accuracy_post.values(), width=0.2, color='g', align='center')
ax.legend(('Pre Accuracy','Post Accuracy'))
plt.xticks(X, accuracy_pre.keys())
plt.title("Accuracy score", fontsize=17)
plt.show()

【讨论】:

    猜你喜欢
    • 2018-04-17
    • 2021-11-21
    • 2022-01-07
    • 2021-04-12
    • 2019-04-19
    • 1970-01-01
    • 2019-09-28
    • 2019-06-24
    相关资源
    最近更新 更多