利用Python绘制MySQL数据图实现数据可视化

  • Post category:Python

让我来为您详细讲解“利用Python绘制MySQL数据图实现数据可视化”的完整攻略。

准备工作

  1. 安装Python环境:Python是一种解释型、交互式、面向对象的编程语言,可在Python官网下载并安装。
  2. 安装Python MySQL Connector库:MySQL Connector是Python语言的MySQL官方驱动程序,可用于Python连接MySQL数据库并进行操作。
    pip install mysql-connector-python
  3. 安装Matplotlib库:Matplotlib是一种数据可视化工具包,可用于创建2D图形表示数据和结果。
    pip install matplotlib

数据获取

在绘制MySQL数据图前,需要获取MySQL数据。可以通过Python MySQL Connector库连接MySQL数据库,查询并获取数据。下面是示例代码:

import mysql.connector

# 连接MySQL数据库
conn = mysql.connector.connect(host="localhost", user="root", password="123456", database="test")

# 查询数据
cursor = conn.cursor()
query = "SELECT * FROM student"
cursor.execute(query)
result = cursor.fetchall()

# 关闭连接
cursor.close()
conn.close()

数据可视化

获取MySQL数据后,可以使用Matplotlib库创建数据图。

条形图

条形图可用于比较不同类别的数值大小。下面是绘制MySQL student表中学生数目的条形图示例代码:

import mysql.connector
import matplotlib.pyplot as plt

# 连接MySQL数据库
conn = mysql.connector.connect(host="localhost", user="root", password="123456", database="test")

# 查询数据
cursor = conn.cursor()
query = "SELECT COUNT(*) FROM student GROUP BY age"
cursor.execute(query)
result = cursor.fetchall()

# 绘制图形
ages = [row[0] for row in result]
plt.bar(range(len(ages)), ages)
plt.xticks(range(len(ages)), ["18", "19", "20", "21"])
plt.xlabel("Age")
plt.ylabel("Number of Students")
plt.show()

# 关闭连接
cursor.close()
conn.close()

饼图

饼图可用于表示占比关系。下面是绘制MySQL student表中男生和女生比例的饼图示例代码:

import mysql.connector
import matplotlib.pyplot as plt

# 连接MySQL数据库
conn = mysql.connector.connect(host="localhost", user="root", password="123456", database="test")

# 查询数据
cursor = conn.cursor()
query = "SELECT gender, COUNT(*) FROM student GROUP BY gender"
cursor.execute(query)
result = cursor.fetchall()

# 绘制图形
genders = [row[0] for row in result]
counts = [row[1] for row in result]
plt.pie(counts, labels=genders, autopct='%1.1f%%')
plt.show()

# 关闭连接
cursor.close()
conn.close()

以上就是利用Python绘制MySQL数据图实现数据可视化的完整攻略,并且提供了两个示例:绘制学生年龄与数量的条形图,以及绘制学生男女比例的饼图。