Plot a histogram from a Dictionary

后端 未结 4 1707
-上瘾入骨i
-上瘾入骨i 2020-12-08 09:48

I created a dictionary that counts the occurrences in a list of every key and I would now like to plot the histogram of its content.

This i

相关标签:
4条回答
  • 2020-12-08 10:22

    In case the keys of the myDictionary are not uniformed distributed, its helpful to use the keys as str:

    plt.bar([ str(i) for i in myDictionary.keys()], myDictionary.values(), color='g')
    
    0 讨论(0)
  • 2020-12-08 10:36

    With Python 3 you need to use list(your_dict.keys()) instead of your_dict.keys() (otherwise you get TypeError: 'dict_keys' object does not support indexing):

    import matplotlib.pyplot as plt
    
    dictionary = {1: 27, 34: 1, 3: 72, 4: 62, 5: 33, 6: 36, 7: 20, 8: 12, 9: 9, 10: 6, 11: 5, 
                  12: 8, 2: 74, 14: 4, 15: 3, 16: 1, 17: 1, 18: 1, 19: 1, 21: 1, 27: 2}
    plt.bar(list(dictionary.keys()), dictionary.values(), color='g')
    plt.show()
    

    Tested with Matplotlib 2.0.0 and python 3.5.

    FYI: Plotting a python dict in order of key values

    0 讨论(0)
  • 2020-12-08 10:36
    values = [] #in same order as traversing keys
    keys = [] #also needed to preserve order
    for key in myDictionary.keys():
      keys.append(key)
      values.append(myDictionary[key])
    

    Use 'keys' and 'values'. This ensures that the order is preserved.

    0 讨论(0)
  • 2020-12-08 10:40

    You can use the function for plotting histograms like this:

    a = np.random.random_integers(0,10,20) #example list of values
    plt.hist(a)
    plt.show()
    

    Or you can use myDictionary just like this:

    plt.bar(myDictionary.keys(), myDictionary.values(), width, color='g')
    
    0 讨论(0)
提交回复
热议问题