目录

  • 1 Python语言基础
    • 1.1 本章导学
    • 1.2 Python概述
    • 1.3 人机交互
    • 1.4 对象与变量
    • 1.5 编码与命名规范
    • 1.6 注释
    • 1.7 实践指导
      • 1.7.1 Python解释器的安装
      • 1.7.2 Pycharm的安装与基本使用
    • 1.8 项目实训
      • 1.8.1 日期格式化输出
      • 1.8.2 欢迎入学
      • 1.8.3 整数四则运算
    • 1.9 作业
    • 1.10 编程训练
  • 2 数值类型与数值运算
    • 2.1 本章导学
    • 2.2 数值类型
    • 2.3 数值类型转换
    • 2.4 数值运算
    • 2.5 常用数学运算函数
    • 2.6 Math模块及其应用
    • 2.7 实践指导
      • 2.7.1 计算矩形面积
      • 2.7.2 一元二次方程求解
      • 2.7.3 换披萨
    • 2.8 作业
    • 2.9 编程训练
    • 2.10 项目实训
      • 2.10.1 计算弓形的面积
      • 2.10.2 地球数据计算
      • 2.10.3 学费计算
  • 3 流程控制
    • 3.1 本章导学
    • 3.2 流程控制
    • 3.3 常用运算
      • 3.3.1 真值测试
      • 3.3.2 比较运算
      • 3.3.3 成员运算
      • 3.3.4 布尔运算
      • 3.3.5 身份运算
    • 3.4 循环结构
      • 3.4.1 Range
      • 3.4.2 for 循环
        • 3.4.2.1 for循环(上)
        • 3.4.2.2 for循环实例
        • 3.4.2.3 for循环(下)
      • 3.4.3 while循环
    • 3.5 分支结构
    • 3.6 流程跳转
    • 3.7 else子句
    • 3.8 异常处理
    • 3.9 实践指导
      • 3.9.1 兔子繁殖问题
      • 3.9.2 九九乘法表
      • 3.9.3 百钱百鸡
      • 3.9.4 计算圆周率
      • 3.9.5 百分制转五分制
      • 3.9.6 输出与3无关的数
      • 3.9.7 自身以外的最大因数
      • 3.9.8 判断素数
      • 3.9.9 百钱百鸡进阶
      • 3.9.10 最小公倍数
      • 3.9.11 最大素数
      • 3.9.12 四则运算
      • 3.9.13 正整数A+B
    • 3.10 作业
    • 3.11 编程训练
    • 3.12 项目实训
      • 3.12.1 古代数学问题
      • 3.12.2 个人所得税计算器
      • 3.12.3 计算圆周率
  • 4 函数与模块化编程
    • 4.1 本章导学
    • 4.2 函数定义、调用与返回值
    • 4.3 参数传递
    • 4.4 变量作用域
    • 4.5 匿名函数
    • 4.6 递归函数
    • 4.7 实践指导
      • 4.7.1 阶乘函数定义
      • 4.7.2 素数判定函数
      • 4.7.3 幂函数的定义
      • 4.7.4 简单计算器
      • 4.7.5 回文素数
    • 4.8 作业
    • 4.9 编程训练
    • 4.10 项目实训
      • 4.10.1 来自计算机的问候
      • 4.10.2 自定义数学函数模块
      • 4.10.3 神奇的素数
  • 5 字符串
    • 5.1 本章导学
    • 5.2 序列通用操作
      • 5.2.1 字符串通用操作
      • 5.2.2 索引
      • 5.2.3 切片
      • 5.2.4 序列拼接与重复
      • 5.2.5 成员测试
    • 5.3 字符串创建与字符常量
    • 5.4 字符串与文件遍历
    • 5.5 常用字符串处理方法
    • 5.6 字符串格式化
    • 5.7 random模块及应用
    • 5.8 实践指导
      • 5.8.1 字符串索引百分制转五分制
      • 5.8.2 回文字符串判断
      • 5.8.3 输出身份信息
      • 5.8.4 约瑟夫环问题
      • 5.8.5 温度转换
      • 5.8.6 字符分类统计
      • 5.8.7 凯撒加密
      • 5.8.8 遍历输出文件
      • 5.8.9 隐私数据处理
      • 5.8.10 猜数游戏
      • 5.8.11 模拟验证码
      • 5.8.12 模拟产生微软序列号
    • 5.9 作业
    • 5.10 编程训练
    • 5.11 项目实训
      • 5.11.1 信息加密与解密
      • 5.11.2 文本分析
      • 5.11.3 日期分析处理
      • 5.11.4 单词猎手游戏
  • 6 序列类型
    • 6.1 本章导学
    • 6.2 元组
    • 6.3 列表
      • 6.3.1 列表的创建
      • 6.3.2 列表的更新
      • 6.3.3 列表元素的删除
      • 6.3.4 列表排序
      • 6.3.5 列表赋值与复制
      • 6.3.6 列表推导式
      • 6.3.7 列表常用内置函数
      • 6.3.8 列表嵌套及排序
    • 6.4 实践指导
      • 6.4.1 成绩统计分析
      • 6.4.2 二维列表的排序
      • 6.4.3 自幂数
      • 6.4.4 蒙特卡洛模拟圆周率
      • 6.4.5 文件中数据统计分析
      • 6.4.6 读取Excel文件中的证券数据
      • 6.4.7 读取csv文件中的数据
      • 6.4.8 读取SQLite数据库中的数据
    • 6.5 作业
    • 6.6 编程训练
    • 6.7 项目实训
      • 6.7.1 分配学号
      • 6.7.2 葡萄酒评论分析报告
      • 6.7.3 模拟生成身份信息并查验身份
  • 7 集合与映射类型
    • 7.1 本章导学
    • 7.2 集合类型
      • 7.2.1 集合创建
      • 7.2.2 集合操作
      • 7.2.3 集合运算
    • 7.3 映射类型
      • 7.3.1 字典的创建
      • 7.3.2 获取字典数据
      • 7.3.3 修改字典值
      • 7.3.4 字典排序
    • 7.4 实践指导
      • 7.4.1 奇特的四位数
      • 7.4.2 特殊的生日
      • 7.4.3 二进制IP转十进制
      • 7.4.4 手机销售分析
      • 7.4.5 通讯录的查询与更新
      • 7.4.6 查询首都
      • 7.4.7 词频统计
    • 7.5 作业
    • 7.6 编程训练
    • 7.7 项目实训
      • 7.7.1 大学排行榜分析
      • 7.7.2 简易英汉字典
      • 7.7.3 股票分析
  • 8 文件操作
    • 8.1 本章导学
    • 8.2 文件概述
    • 8.3 文件打开与关闭
    • 8.4 文件读写操作
    • 8.5 文件的应用
      • 8.5.1 CSV与JSON文件
      • 8.5.2 文件与文件夹操作
    • 8.6 NumPy文件操作
    • 8.7 实践指导
      • 8.7.1 读取文件
      • 8.7.2 读文件统计成绩
      • 8.7.3 pandas读文件统计成绩
      • 8.7.4 csv转json
      • 8.7.5 json转csv
      • 8.7.6 csv与json互转-pandas
      • 8.7.7 从多文件中提取数据汇总
      • 8.7.8 numpy读写文件
      • 8.7.9 numpy数据分析
      • 8.7.10 pandas数据分析
    • 8.8 作业
    • 8.9 编程训练
    • 8.10 项目实训
      • 8.10.1 ​词频统计
      • 8.10.2 批量文件处理与格式转换
  • 9 数据可视化
    • 9.1 本章导学
    • 9.2 基本线型图
    • 9.3 函数绘图
    • 9.4 数据绘图
      • 9.4.1 读两列数据绘图
      • 9.4.2 读多列数据绘图
      • 9.4.3 二列数据绘制多条曲线
    • 9.5 作业
    • 9.6 编程训练
    • 9.7 项目实训
      • 9.7.1 ​科学实验数据可视化
      • 9.7.2 金融数据可视化
      • 9.7.3 中英文词云
  • 10 实践与训练资源
    • 10.1 在线编程训练
    • 10.2 教师资源
本章导学


第9章 数据可视化

【本章导读】

杂乱无序的数据往往会让人产生压迫感和厌倦感,一张可视化信息图表能清晰的传递庞杂信息和数据,大大缩减人们理解分析复杂数据的时间,提高获取信息的效率。

在数据可视化方面, Matplotlib库提供了非常强大的可视化能力。本章将在讲授函数曲线绘图与美化的基础上,详细讲授文件中各种类型数据的绘图方法,学习曲线图、直方图、雷达图、饼图、散点图、等值线图、三维图和词云的绘制方法。

【本章要点】

●         利用numpy创建数组

●         简单函数曲线的绘制、标注与美化

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2*np.pi, 50)   # 0-2π之间生成等间距50个点
y_of_sin = np.sin(x)              # 生成sin(x)值数组
y_of_cos = np.cos(x)              # 生成cos(x)值数组
plt.plot(x, y_of_sin)             # 绘制sin(x)曲线图像
plt.plot(x, y_of_cos)             # 绘制cos(x)曲线图像
plt.show()                        # 显示绘制的图像


●         根据文件中的数据绘制曲线

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2*np.pi, 50)   # 0-2π之间生成等间距50个点
y_of_sin = np.sin(x)              # 生成sin(x)值数组
y_of_cos = np.cos(x)              # 生成cos(x)值数组
plt.plot(x, y_of_sin)             # 绘制sin(x)曲线图像
plt.plot(x, y_of_cos)             # 绘制cos(x)曲线图像
plt.show()                        # 显示绘制的图像


●         饼图、直方图、雷达图、散点图和等值线图的绘制

●         曲线拟合与三维图的绘制

# 曲线拟合
import numpy as np
import matplotlib.pyplot as plt
from scipy import optimize


●         词云的绘制

fit_words(frequencies)  根据词频生成词云,参数为包含词与词频的字典,为generate_from_frequencies的别名
generate(text)         根据文本生成词云,是generate_from_text的别名
generate_from_frequencies(frequencies) 根据词频生成词云,参数为词频字典
generate_from_text(text)   根据文本生成词云,如果参数是排序的列表,需设置'collocations=False',否则会导致每个词出现2次。
process_text(text)         将长文本分词并去除stopwords,返回值为词频字典


import jieba.analyse
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from wordcloud import WordCloud

wc = WordCloud(max_words=80,              # 设置显示高频单词数量
               font_path='msyh.ttc',      # 中文字体
               width=600,                 # 设置图片的宽度
               height=400,                # 设置图片的高度
               background_color='White',  # 设置背景颜色
               mask=graph,                # 设置背景图片
               max_font_size=150,         # 设置字体最大值
               margin=5,                  # 设置图片的边缘
               scale=1.5)                 # 按照比例进行放大


本章课件