繁体   English   中英

如何使用matplotlib在条形图中绘制前n个最高值?

[英]How to plot top n highest values in a bar graph using matplotlib?

我有三个值的实时数据:id、name、salary。 我正在使用姓名和薪水为其绘制图表。

def graph():
    con = None
    try:
        con = connect("project.db")
        cursor = con.cursor()
        sql = "select name, salary from employee"
        cursor.execute(sql)
        data = cursor.fetchall()
        name = []
        salary = []
        for i in data:
            name.append(i[0])
            salary.append(i[1])
        plt.bar(name, salary)
        plt.xlabel("Names of Employee")
        plt.ylabel("Salary of Employee")
        plt.title("Top 5 Highest Salaried Employee")
        plt.show()
    except Exception as e:
        showerror("issue ", e)
        con.rollback()
    finally:
        if con is not None:
            con.close()

但我的问题是:我得到了所有员工的条形图。 我只想为收入最高的 5 名员工绘图。 有没有办法做到这一点?

您可以按薪水升序对 SQL 查询中的结果进行排序,然后只取前五个结果。

尝试'''SELECT name, salary FROM employee ORDER BY salary DESC LIMIT 5'''

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM