我无法在使用matplotlib.pyplot创建的直方图中添加图例。 非常感谢一些帮助/建议。
以下数据集是垃圾数据,但它是情况的准确示例,两个数据集都位于同一数据框中,由列上的过滤器分隔。
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import math
import pyodbc
import re
data = [{ 'uid':1,'Region':'nebraska', 'metric1':24},
{ 'uid':2,'Region':'nebraska', 'metric1':12},
{ 'uid':3,'Region':'nebraska', 'metric1':23},
{ 'uid':4,'Region':'nebraska', 'metric1':12},
{ 'uid':1,'Region':'nebraska', 'metric1':24},
{ 'uid':2,'Region':'nebraska', 'metric1':12},
{ 'uid':3,'Region':'nebraska', 'metric1':23},
{ 'uid':4,'Region':'nebraska', 'metric1':12},
{ 'uid':1,'Region':'nebraska', 'metric1':24},
{ 'uid':2,'Region':'nebraska', 'metric1':12},
{ 'uid':3,'Region':'nebraska', 'metric1':23},
{ 'uid':4,'Region':'nebraska', 'metric1':12},
{ 'uid':1,'Region':'nebraska', 'metric1':24},
{ 'uid':2,'Region':'nebraska', 'metric1':12},
{ 'uid':3,'Region':'nebraska', 'metric1':23},
{ 'uid':4,'Region':'nebraska', 'metric1':12},
{ 'uid':29,'Region':'colorado', 'metric1':14},
{ 'uid':30,'Region':'colorado', 'metric1':45},
{ 'uid':30,'Region':'colorado', 'metric1':45},
{ 'uid':30,'Region':'colorado', 'metric1':45},
{ 'uid':31,'Region':'colorado', 'metric1':65},
{ 'uid':32,'Region':'colorado', 'metric1':50}
]
testDataset = pd.DataFrame(data)
b = np.arange(0,100, 50)
plt.hist(testDataset[testDataset['Region'] == 'nebraska']['metric1'], b,color = 'red')
plt.xticks(rotation=90)
plt.xticks(np.arange(0, 100, 10))
plt.yticks(np.arange(0, 100, 10))
plt.grid(zorder=0)
plt.hist(testDataset[testDataset['Region'] == 'colorado']['metric1'], b,color = 'blue')
plt.show()
答案 0 :(得分:3)
只需在label
来电中添加hist
参数:
plt.hist(testDataset[testDataset['Region'] == 'nebraska']['metric1'], b,
color = 'red', label='Nebraska')
plt.hist(testDataset[testDataset['Region'] == 'colorado']['metric1'], b,
color = 'blue', label='Colorado')
并在plt.legend()
之前致电plt.show()
。
答案 1 :(得分:0)
我相信你只是在寻找plt.legend()
例如:
plt.legend(['Red', 'Blue'])