调取数据库中用十名同学的软件成绩和python成绩绘制并列条形图
时间: 2024-10-18 14:08:15 浏览: 25
Python如何读取MySQL数据库表数据
5星 · 资源好评率100%
在Python中,你可以使用matplotlib库来绘制这样的数据图表,首先需要从数据库中获取每位同学的软件成绩和Python成绩数据。以下是大致步骤:
1. **数据获取**:
使用数据库连接库(如sqlite3、pymysql、psycopg2等),根据SQL查询从数据库中获取学生的姓名和他们的软件与Python成绩。
```python
import sqlite3
# 假设数据库名为my_database.db,表名为students
conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()
query = "SELECT name, software_score, python_score FROM students"
data = cursor.fetchall()
```
2. **数据处理**:
将查询结果转换为适合绘图的数据结构,比如字典列表,其中每个元素包含学生名字、软件成绩和Python成绩。
```python
student_data = []
for student in data:
student_name, software_score, python_score = student
student_data.append({'name': student_name, 'software': software_score, 'python': python_score})
```
3. **绘制图形**:
使用`matplotlib`的`bar`函数创建条形图。
```python
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.barh(student_data, ['Software', 'Python'], color=['blue', 'orange'])
ax.set_xlabel('Score')
ax.set_yticks(range(len(data)), labels=[d['name'] for d in student_data])
ax.set_ylabel('Student')
plt.show()
```
在这个例子中,x轴表示分数,y轴表示学生,蓝色柱子代表软件成绩,橙色柱子代表Python成绩。
阅读全文