簡體   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