pycharm数据可视化【分析成绩】

应用场景:

  • 教育机构的学生成绩分析
  • 教学质量评估

  • 学习情况统计报告

  • 数据可视化教学案例

  1. 介绍

这个脚本生成四个图表:直方图、箱线图、条形图和饼图,用于展示学生成绩数据

主要库它使用pandas、numpy、matplotlib和seaborn

如果没有库请在终端下载:

点击终端或者python软件包进行下载

复制代码
# 安装pandaspip install pandas
# 安装numpypip install numpy
# 安装matplotlibpip install matplotlib
# 安装seabornpip install seaborn

步骤:

  1. 准备数据:创建一个包含姓名、分数和班级的DataFrame(数据框)

  2. 生成直方图:展示分数的分布,并带有KDE(核密度估计)

  3. 生成箱线图:按班级对比成绩,并标记平均值

  4. 生成条形图:按分数从高到低展示学生排名

  5. 生成饼图:展示成绩等级(不及格、及格、良好、优秀)的分布

第一步:模块导入

复制代码
import pandas as pd #数据处理import numpy as np #数值计算import matplotlib.pyplot asplt #绘图库import seaborn as sns  #统计可视化,基于matplotlibfrom matplotlib.backends,backdend_agg import FigureCanvasAgg #非交互式绘图from matplotlib.figuer import Figureimport matplotlib

#中文字体配置matplotlib,rcParams['font.`sans-serif'] = ['simHei','Arial Unicode_minus'] = False

设置中文字体,解决中文显示乱码问题

核心函数

复制代码
def prepare_data():    data = {        '姓名': ['张三', '李四', '王五', '老六', '小王', '小李', '小龙', '小七', '八八', '小八', '小张'],        '分数': [65.5, 76.8, 73.6, 62.8, 57.7, 59.8, 90, 39.5, 88, 64.4, 73.7],        '班级': ['A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A']    }    return pd.DataFrame(data)

创建包含11名学生成绩的测试数据集

直方图函数

复制代码
def create_histogram(df):    fig = Figure(figsize=(10, 6))    canvas = FigureCanvasAgg(fig)    ax = fig.add_subplot(111)
    sns.histplot(df['分数'].dropna(), bins=8, kde=True, ax=ax, color='skyblue')
  • 使用FigureCanvasAgg进行非交互式绘图(适合脚本生成)

  • kde=True添加核密度估计曲线

  • 8个分箱展示分数分布

3. 箱线图函

复制代码
def create_boxplot(df):    sns.boxplot(x='班级', y='分数', data=df, ax=ax, palette='Set2')    # 添加平均值标记    class_a_mean = df[df['班级'] == 'A']['分数'].mean()    class_b_mean = df[df['班级'] == 'B']['分数'].mean()
  • 比较两个班级的成绩分布

  • 红点标记平均值,便于直观比较

  • 显示中位数、四分位数、异常值等统计信息

排名条形图函数

复制代码
def create_ranking(df):    sorted_df = df.dropna().sort_values('分数', ascending=False)    palette = sns.color_palette("viridis", len(sorted_df))
  • 按分数降序排列

  • 使用viridis色彩映射,分数越高颜色越亮

  • 在条形末端显示具体分数值

成绩等级饼图函数

复制代码
def create_grade_distribution(df):    bins = [0, 60, 70, 80, 100]    labels = ['不及格', '及格', '良好', '优秀']    df['等级'] = pd.cut(df['分数'], bins=bins, labels=labels, right=False)
  • 不及格:0-59分

  • 及格:60-69分

  • 良好:70-79分

  • 优秀:80-100分

技术亮点

复制代码
fig = Figure(figsize=(10, 6))canvas = FigureCanvasAgg(fig)

适合批量生成图片,不依赖图形界面

数据完整性处理

使用.dropna()避免空值影响分析

可视化最佳实践

  • 适当的图表尺寸和布局

  • 网格线提升可读性

  • 颜色搭配协调

  • 标签清晰明确

相关推荐
永恒的溪流3 小时前
学生如何申请专业版pycharm
ide·python·pycharm
小短腿的代码世界3 小时前
Qwt性能优化与源码级深度解析:工业级图表控件的极限性能调优
开发语言·qt·信息可视化·性能优化
乐飞鱼~万维网3 小时前
vscode 调试xdebug 配置问题
ide·vscode·编辑器
财经资讯数据_灵砚智能4 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年4月24日
人工智能·python·信息可视化·自然语言处理·ai编程
财经资讯数据_灵砚智能4 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年4月23日
人工智能·python·信息可视化·自然语言处理·ai编程
TOOLS指南4 小时前
使用Pycharm实现数据可视化作品代码-Python应用
python·信息可视化·pycharm
todoitbo4 小时前
从“会展示”到“会讲解”:基于魔珐星云 + 大模型打造企业数字展厅AI讲解员(开源实战)
人工智能·信息可视化·数字人·大屏可视化·魔珐星云
m0_752035634 小时前
idea的debug configurations里面的shorten command line作用
java·ide·intellij-idea
乐园游梦记5 小时前
在pycharm中添加Conda创建的openmmlab虚拟环境作为解释器
ide·pycharm·conda