一、Python通過pymysql包獲取MySQL數據庫中的數據(沒有對應包的可以通過pip install pymysql 安裝對應的包)
import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams['font.sans-serif'] = ['STZhongsong'] # 指定默認字體:解決plot不能顯示中文問題 mpl.rcParams['axes.unicode_minus'] = False # 引入pymysql包 import pymysql # 連接數據庫並打開library數據庫 conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='123456', db='qskh_091') # 獲取游標對象 cur = conn.cursor(cursor=pymysql.cursors.DictCursor) # 執行SQL語句 cur.execute("SELECT * FROM xiaoliang t1 ORDER BY t1.銷售數量+'0';") # 獲取執行結果 rows = cur.fetchall() print(rows) print("number of records: ", len(rows)) lists=[[],[]] for row in rows: lists[0].append(row["產品代碼"]) lists[1].append(row["銷售數量"]) # 關閉游標對象 print(lists) x=lists[0] y=lists[1] plt.bar(x,y,width=0.5,align="center",label="銷售數量",color="coral") plt.title("各產品銷售狀況") for a,b in zip(x,y): plt.text(a,b,b,ha='center',va="bottom",fontsize=12) plt.xlabel('產品名稱') plt.ylabel('銷售數量') plt.legend() plt.show() cur.close() # 關閉數據庫連接 conn.close()
二、從數據庫中獲取的數據的數據結構如下所示
三、最終結果如下所示