代码之家  ›  专栏  ›  技术社区  ›  Kara W

使用Matplotlib[duplicate]在一个条形图中绘制两个字典

  •  1
  • Kara W  · 技术社区  · 9 年前

    我有两个字典,我想用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)
    
    1 回复  |  直到 4 年前
        1
  •  3
  •   Prem    9 年前

    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()