91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python連接數據庫怎么使用matplotlib畫柱形圖

發布時間:2022-06-30 13:57:36 來源:億速云 閱讀:160 作者:iii 欄目:開發技術

本篇內容主要講解“Python連接數據庫怎么使用matplotlib畫柱形圖”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python連接數據庫怎么使用matplotlib畫柱形圖”吧!

一、柱形圖介紹

(1)介紹

柱狀圖(Histogram),也稱條圖(英文:bargraph)、長條圖(英文:barchart)、條狀圖(Bar graph),是一種以長方形的長度為變量的表達圖形的統計報告圖,由一系列高度不等的縱向條紋表示數據分布的情況,用來比較兩個或以上的價值(不同時間或者不同條件),只有一個變量,通常利用于較小的數據集分析。柱狀圖亦可橫向排列,或用多維方式表達。

(2)優點、缺點

優點:

  • ①便于用戶理解大量數據以及數據相互之間的關系。

  • ②優點是讓用戶通過視覺化的符號,更加快速直觀的讀取原始數據。

缺點:

柱狀圖的局限在于只適用中小規模的數據集。

(3)適用范圍

適用場合是二維數據集,用于比較一段時間內的數據變化

二、數據介紹

(1)數據構成

本次柱狀圖繪畫數據是由數據庫中的訂單表(order)提供,其中表order含有訂單編號(ORDER_ID)、訂單日期(ORDER_DATE)、店鋪名稱(SITE)等二十一個列。

Python連接數據庫怎么使用matplotlib畫柱形圖

(2)數據選取

根據柱形圖的定義以及適用范圍,我們本次畫圖選用的數據是具有統計計數并且能夠比較的數據,因此我們本次選擇銷售經理以及訂單利潤。

在Navicat中通過SQL語句統計出2019年各個銷售經理所銷售的利潤。

SELECT MANAGER, SUM(PROFIT) as TotalProfit FROM orders where FY='2019' group by MANAGER

Python連接數據庫怎么使用matplotlib畫柱形圖

三、python數據庫連接配置以及數據提取設置

(1)調用庫以及連接語法

沒有pymysql庫,可以通過語句pip install pymysql方式安裝

import pymysql 
import pandas as pd # 用來做數據導入(pd.read_sql_query() 執行sql語句得到結果df)
import matplotlib.pyplot as plt # 用來畫圖(plt.plot()折線圖, plt.bar()柱狀圖,....)
# 1. 連接MySQL數據庫: 創建數據庫連接
conn = pymysql.connect(host='ip',port=端口號,user='用戶名',password='用戶密碼',db='連接表名')

(2)語法參數講解

調用庫后通過pymysql.connect創建連接,連接參數如下:

  • host:主機名,也可以存儲的ip地址

  • port:數據庫端口號,一般的數據庫端口號3306

  • user:用戶名

  • password:用戶密碼

  • db:數據庫名稱

(3)數據提取設置

連接數據庫,在數據庫中提取數據就涉及到數據庫的SQL查詢,此處也會有簡單數據庫在Python下的操作方法。

# 2 創建一個sql語句
# -- 統計每個銷售經理2019年的利潤總額
sql = r"SELECT MANAGER, SUM(PROFIT) as TotalProfit FROM orders where FY='2019' group by MANAGER"
# 3 執行sql語句獲取統計查詢結果
df = pd.read_sql_query(sql, conn)

四、全局變量配置

(1)字體畫布配置

此處的字體畫布設置在使用matplotlib畫圖時都可以放在庫導入之后,當成固定的設置,其中的參數介紹在前面plot()函數畫圖時已經做出介紹詳細請看前面的文章。

plt.rcParams['font.sans-serif'] = 'SimHei' # 設置中文字體支持中文顯示
plt.rcParams['axes.unicode_minus'] = False # 支持中文字體下顯示'-'號
 
# figure 分辨率 800x600
plt.rcParams['figure.figsize'] = (6,4)  # 8x6 inches
plt.rcParams['figure.dpi'] = 100        # 100 dot per inch

(2)標題、標簽設置

title()是標題設置,ylael()設置y軸的標簽,grid()網格線設置

#標簽、標題設置
plt.title("每個銷售經理2019年的利潤總額")
plt.ylabel("利潤額")
plt.xlabel('經理')
#網格線設置
plt.grid(axis='y')

網格線設置參數介紹:

plt.grid() # 顯示網格線 1=True=默認顯示;0=False=不顯示
plt.grid(1) # 顯示網格線
plt.grid(True) # 顯示網格線
plt.grid(b=True) # 顯示網格線
plt.grid(b=1) # 顯示網格線
plt.grid(b=True, axis='x') #只顯示x軸網格線
plt.grid(b=True, axis='y') #只顯示y軸網格線
plt.grid(b=1, which='major') # 默認就是major,例如x軸最大值為3.5(這個值占比極小,不影響作圖的話),這部分圖像不會顯示;若which='both'則顯示;若設置為minor則不顯示網格(其實這里有點不懂,,既然不顯示,那為什么不直接設置為b=0呢????)

五、數據庫數據畫圖

(1)畫圖函數調用并作出圖形

通過for循環將每個經理對應的值畫入圖像上:

#y軸值的顯示
for index,value in df['TotalProfit'].items():
    plt.text(index,value,round(value),ha='center',va='bottom',color='k')
#通過上述查詢的結果進行x,y的帶入
plt.bar(df['MANAGER'], df['TotalProfit'])

作出圖形如圖:

Python連接數據庫怎么使用matplotlib畫柱形圖

(2)全代碼

import pymysql
import pandas as pd # 用來做數據導入(pd.read_sql_query() 執行sql語句得到結果df)
import matplotlib.pyplot as plt # 用來畫圖(plt.plot()折線圖, plt.bar()柱狀圖,....)
plt.rcParams['font.sans-serif'] = 'SimHei' # 設置中文字體支持中文顯示
plt.rcParams['axes.unicode_minus'] = False # 支持中文字體下顯示'-'號
# figure 分辨率 800x600
plt.rcParams['figure.figsize'] = (6,4)  # 8x6 inches
plt.rcParams['figure.dpi'] = 100        # 100 dot per inch
#建立連接
conn = pymysql.connect(host='localhost',port=3306,user='root',password='9812yang',db='mydb')
#設置查詢語句
sql = r"SELECT MANAGER, SUM(PROFIT) as TotalProfit FROM orders where FY='2019' group by MANAGER"
#執行sql語句獲取統計查詢結果,并賦值
df = pd.read_sql_query(sql, conn)
#調用函數
plt.bar(df['MANAGER'], df['TotalProfit'])
#設置y軸的網格線
plt.grid(axis='y')
#設置標題
plt.title("每個銷售經理2019年的利潤總額")
#y軸標簽
plt.ylabel("利潤額")
#x軸標簽
plt.xlabel("經理姓名")
#將對應數值寫入柱形圖
for index,value in df['TotalProfit'].items():
    plt.text(index,value,round(value),ha='center',va='bottom',color='k')

到此,相信大家對“Python連接數據庫怎么使用matplotlib畫柱形圖”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

象州县| 陆河县| 娄底市| 科尔| 武乡县| 临安市| 龙里县| 元江| 泰宁县| 兰考县| 定襄县| 新源县| 石门县| 玉山县| 长乐市| 呼图壁县| 红安县| 藁城市| 凌云县| 浏阳市| 广河县| 海口市| 繁昌县| 民县| 张家界市| 武威市| 五峰| 大港区| 饶阳县| 安吉县| 阿荣旗| 奈曼旗| 格尔木市| 罗城| 陆河县| 石楼县| 隆子县| 南乐县| 德惠市| 达孜县| 浦东新区|