让我来为你讲解一下如何使用 Python 读取 MySQL 数据并绘制条形图。
第一步:连接数据库
要使用 Python 读取 MySQL 数据,首先需要通过 pymysql 模块建立与数据库的连接。连接过程可以分为三个步骤:
-
导入 pymysql 模块。
python
import pymysql -
创建数据库连接。
```python
填写数据库连接信息
db_info = {
'host': 'localhost',
'port': 3306,
'user': 'root',
'password': '123456',
'database': 'testdb',
'charset': 'utf8mb4'
}建立数据库连接
conn = pymysql.connect(**db_info)
``` -
创建游标。
```python
创建游标
cursor = conn.cursor()
```
其中,db_info
是一个字典类型的变量,用于保存数据库连接信息,包括数据库地址、端口号、用户名、密码、数据库名称和字符集等。
第二步:执行 SQL 查询语句
成功连接到数据库之后,就可以执行 SQL 查询语句来读取数据了。下面是一个简单的 SQL 查询语句,用于从数据表 students
中读取学生的姓名和成绩。
SELECT name, score FROM students;
在 Python 中,可以使用游标对象的 execute()
方法来执行 SQL 查询语句,并通过 fetchall()
或 fetchone()
方法读取查询结果。
# 执行 SQL 查询语句
cursor.execute('SELECT name, score FROM students')
# 读取查询结果
results = cursor.fetchall()
查询结果将会以元组形式保存到 results
变量中。
第三步:绘制条形图
在读取数据之后,就可以使用 matplotlib 库来绘制条形图了。下面是一段简单的代码,用于绘制学生成绩的条形图。
import matplotlib.pyplot as plt
# 分离数据
names = [result[0] for result in results]
scores = [result[1] for result in results]
# 绘制条形图
plt.bar(names, scores)
# 设置坐标轴标题
plt.title('Student Scores')
plt.xlabel('Student Names')
plt.ylabel('Scores')
# 显示图表
plt.show()
在这段代码中,我们首先使用列表推导式将查询结果分离成学生姓名和成绩两个列表。然后使用 plt.bar()
方法绘制条形图,并分别设置坐标轴的标题。最后使用 plt.show()
方法显示图表。
以上就是使用 Python 读取 MySQL 数据并绘制条形图的完整攻略。下面还有一些示例说明。
示例一:读取特定条件的数据
假设我们要读取成绩大于等于 90 分的学生姓名和成绩,可以修改 SQL 查询语句如下:
# 执行 SQL 查询语句
cursor.execute('SELECT name, score FROM students WHERE score >= 90')
# 读取查询结果
results = cursor.fetchall()
示例二:设置条形图样式
我们可以通过传递参数给 plt.bar()
方法来设置条形图的样式。例如可以设置颜色、边框宽度、透明度等,如下所示:
# 绘制红色的条形图,边框宽度为 2,透明度为 0.8
plt.bar(names, scores, color='red', edgecolor='black', linewidth=2, alpha=0.8)
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python读取mysql数据绘制条形图 - Python技术站